`
daoshud1
  • 浏览: 550482 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论
收藏列表
标题 标签 来源
java 读写ftp JAVA读写ftp
import java.io.DataInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import sun.net.*;
import sun.net.ftp.FtpClient;

public class TestUpload {
	public FtpClient ftpClient;

	/**
	 * connectServer 连接ftp服务器
	 * 
	 * @throws java.io.IOException
	 * @param path 文件夹,空代表根目录
	 * @param password 密码
	 * @param user 登陆用户
	 * @param server 服务器地址
	 */
	public void connectServer(String server, String user, String password,
			String path) throws IOException {
		// server:FTP服务器的IP地址;user:登录FTP服务器的用户名
		// password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径
		ftpClient = new FtpClient();
		ftpClient.openServer(server);
		ftpClient.login(user, password);
		// path是ftp服务下主目录的子目录
		if (path.length() != 0)
			ftpClient.cd(path);
		// 用2进制上传、下载
		ftpClient.binary();
	}

	/**
	 * upload 上传文件
	 * 
	 * @throws java.lang.Exception
	 * @return -1 文件不存在 -2 文件内容为空 >0 成功上传,返回文件的大小
	 * @param newname 上传后的新文件名
	 * @param filename 上传的文件
	 */
	public long upload(String filename, String newname) throws Exception {
		long result = 0;
		TelnetOutputStream os = null;
		FileInputStream is = null;
		try {
			java.io.File file_in = new java.io.File(filename);
			if (!file_in.exists())
				return -1;
			if (file_in.length() == 0)
				return -2;
			os = ftpClient.put(newname);
			result = file_in.length();
			is = new FileInputStream(file_in);
			byte[] bytes = new byte[1024];
			int c;
			while ((c = is.read(bytes)) != -1) {
				os.write(bytes, 0, c);
			}
		} finally {
			if (is != null) {
				is.close();
			}
			if (os != null) {
				os.close();
			}
		}
		return result;
	}

	/**
	 * upload
	 * 
	 * @throws java.lang.Exception
	 * @return
	 * @param filename
	 */
	public long upload(String filename) throws Exception {
		String newname = "";
		if (filename.indexOf("/") > -1) {
			newname = filename.substring(filename.lastIndexOf("/") + 1);
		} else {
			newname = filename;
		}
		return upload(filename, newname);
	}

	/**
	 * download 从ftp下载文件到本地
	 * 
	 * @throws java.lang.Exception
	 * @return
	 * @param newfilename 本地生成的文件名
	 * @param filename 服务器上的文件名
	 */
	public long download(String filename, String newfilename) throws Exception {
		long result = 0;
		TelnetInputStream is = null;
		FileOutputStream os = null;
		try {
			is = ftpClient.get(filename);
			java.io.File outfile = new java.io.File(newfilename);
			os = new FileOutputStream(outfile);
			byte[] bytes = new byte[1024];
			int c;
			while ((c = is.read(bytes)) != -1) {
				os.write(bytes, 0, c);
				result = result + c;
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (is != null) {
				is.close();
			}
			if (os != null) {
				os.close();
			}
		}
		return result;
	}

	/**
	 * 取得某个目录下的所有文件列表
	 * 
	 */
	public List getFileList(String path) {
		List list = new ArrayList();
		try {
			DataInputStream dis = new DataInputStream(ftpClient.nameList(path));
			String filename = "";
			while ((filename = dis.readLine()) != null) {
				list.add(filename);
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * closeServer 断开与ftp服务器的链接
	 * 
	 * @throws java.io.IOException
	 */
	public void closeServer() throws IOException {
		try {
			if (ftpClient != null) {
				ftpClient.closeServer();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) throws Exception {
		TestUpload ftp = new TestUpload();
		try {
			System.out.println("start connection >>>>>>>>>>.");
			// 连接ftp服务器
			ftp.connectServer("192.168.1.105", "li", "li", "download");
			/** 上传文件到 info2 文件夹下 */
			System.out.println("filesize:"
					+ ftp.upload("c:/11.txt") + "字节");
			/** 取得info2文件夹下的所有文件列表,并下载到 E盘下 */
			List list = ftp.getFileList(".");
//			for (int i = 0; i < list.size(); i++) {
//				String filename = (String) list.get(i);
//				System.out.println(filename);
//				ftp.download(filename, "d:/" + filename);
//			}
			ftp.download("11.txt", "d:/" + "11.txt");
			System.out.println("end connection >>>>>>>>>>.");
		} catch (Exception e) {
			// /
		} finally {
			ftp.closeServer();
		}
	}
	

}
数据 动态分组 js 实现根据数组分组动态生成table(合并相同项)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <script>
  //xxbh:学校编号,bjbh:班级编号,xx:姓名
	var arrJson=[
		{'xxbh':'1001','bjbh':'0801','xx':'李四'},{'xxbh':'1001','bjbh':'0802','xx':'张三'},
		{'xxbh':'1003','bjbh':'0803','xx':'王五'},{'xxbh':'1003','bjbh':'0804','xx':'晶晶'},
		{'xxbh':'1005','bjbh':'0701','xx':'亮亮'},{'xxbh':'1002','bjbh':'0701','xx':'明敏'},
		{'xxbh':'1005','bjbh':'0701','xx':'张灿'},{'xxbh':'1002','bjbh':'0801','xx':'小白'},
		{'xxbh':'1005','bjbh':'0802','xx':'小胖'},{'xxbh':'1002','bjbh':'0901','xx':'小丽'},
		{'xxbh':'1003','bjbh':'0901','xx':'阿宝'},{'xxbh':'1004','bjbh':'0901','xx':'王泰'},
		{'xxbh':'1001','bjbh':'0901','xx':'阿毛'},{'xxbh':'1006','bjbh':'0901','xx':'李铭'},
		{'xxbh':'1005','bjbh':'0901','xx':'阿城'},{'xxbh':'1004','bjbh':'0901','xx':'张晓'},
		{'xxbh':'1006','bjbh':'0901','xx':'小小'},{'xxbh':'1004','bjbh':'0901','xx':'白昼'},
		{'xxbh':'1002','bjbh':'0901','xx':'乐乐'},{'xxbh':'1001','bjbh':'0901','xx':'黎明'}
	];
	function creatMapByXxbh(arrJson){
		var xxbhMap={};
		var len = arrJson.length;
		for(var i=0;i<len;i++){
		
			if(xxbhMap[arrJson[i].xxbh] == undefined){
				var list = [];
				list.push(arrJson[i]);
				xxbhMap[arrJson[i].xxbh] = list;
			}else{
				xxbhMap[arrJson[i].xxbh].push(arrJson[i]);
			}
			
		}
		var str="<table border='1'><tr><td width='200'>学校编号</td><td width='200'>班级</td><td width='200'>姓名</td></tr>";
		for(var xxbh in xxbhMap){
			var stu = xxbhMap[xxbh];
			alert(stu.length);
			str+="<tr><td rowspan='"+stu.length+"'>"+xxbh+"</td>";
			for(var i = 0;i < stu.length;i++){
				//document.write(xxbh + " "+stu[i].bjbh+" "+stu[i].xx +"<br />")
				//document.write("<table><tr><td>学校编号</td><td>班级</td><td>姓名</td></tr></table> ")
				if(i==0){
					str+="<td>"+stu[i].bjbh+"</td><td>"+stu[i].xx+"</td></tr>";
				}else{
					str+="<tr><td>"+stu[i].bjbh+"</td><td>"+stu[i].xx+"</td></tr>";
				}	
			}
			str+="<tr ><td colspan='3'>"+xxbh+"共有"+stu.length+"个班级</td></tr>"
		}
		str+="</table> ";
		document.write(str)
	}
  </script>
 </head >

 <body>
  <button onclick='creatMapByXxbh(arrJson)'>测试</button> 
 </body>
</html>
 
<img src="http://dl.iteye.com/upload/attachment/0063/6806/345b34d1-2dcb-3336-9ccd-c1575e9a26ed.jpg" alt="">

 
Global site tag (gtag.js) - Google Analytics