`
lzkyo
  • 浏览: 457394 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA读写ftp

    博客分类:
  • Java
阅读更多
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();
		}
	}
	

}

 

用到的包在jdk下面,rt.jar

分享到:
评论
1 楼 ling_zhenxiajiuyou 2011-08-10  
嗯,多谢,虽然不知道能不能跑起来,但试试吧,,

相关推荐

    java读写ftp文件以及设置ftp共享服务器

    java读写ftp文件以及设置ftp共享服务器

    Java读写文件及FTP例子.docx

    Java读写文件及FTP例子

    ftp文件拷贝、读写、上传、下载的java类

    java的ftp类,可实现ftp服务器间拷贝文件,读写、上传、下载等功能。上传和下载部分参考了其它程序员的代码,表示感谢。

    JAVA实现FTP间拷贝上传下载读写等

    java的ftp类,可实现ftp服务器间拷贝文件,上传、下载等功能。

    Java使用FTPClient类读写FTP

    主要为大家详细介绍了Java使用FTPClient类读写FTP的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Java源码包100个设计实例.zip

    Java源码包100个设计实例, 大量 实例,可以作为你的学习设计参考。...Java读写文本文件的示例代码 Java赌神游戏网络版源代码.rar Java超市管理,SQL2000+源代码.rar Java超市进销存系统.rar Java软件度量源码.ra

    几个常用的java包

    mysql-connector-java-5.1.6-bin.jar java连接mysql的包 class12.jar java连接oracle的包 ...dom4j-1[1].6.1.jar java读写xml的包 jxl.jar java读写excel文件的包 log4j-1.3alpha-8.jar java的日志包

    java源码包---java 源码 大量 实例

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    蓝牙FTP浏览器 FOR JAVA手机 Bluetooth File Transfer OBEX FTP

    软件名称:Bluetooth File Transfer OBEX FTP ...只需要简单操作,就可以一次可以删除或者发送多个文件,使用属性编辑器还可以设置文件的读写和隐藏属性。你还可以把经常需要连接的设备加入书签,让连接变得更迅速。

    JAVA上百实例源码以及开源项目

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    JAVA上百实例源码以及开源项目源代码

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包101

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包9

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java源码包4

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术...

    java开源包8

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包5

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

Global site tag (gtag.js) - Google Analytics