JSP学习笔记(一百二十一):Java中使用edtftpj2.1操作FTP
edtftpj2.1是第三方操作FTP的应用,操作简单,官方下载地址:http://www.enterprisedt.com/products/edtftpj/choose.html
选择免费版本下载,我感觉免费版的功能已经够用了。
下面我们开始使用edtftpj
1.连接以及断开ftp
FileTransferClient ftp = new FileTransferClient(); ftp.setRemoteHost("127.0.0.1"); // ftp服务器ip ftp.setRemotePort(21); //ftp服务器端口 ftp.setUserName("test1"); //ftp服务器用户名 ftp.setPassword("test1"); //ftp服务器密码 ftp.connect(); //连接ftp服务器 ftp.disconnect(); //断开ftp服务器
2.设置中文编码
默认情况下,操作中文会出现乱码,设置中文编码以后就不会乱码了
ftp.getAdvancedSettings().setControlEncoding("gb2312");
3.列举ftp中某路径下列表
列举ftp服务器/dir目录下的所有文件
ftp.changeDirectory("/dir"); FTPFile[] files = ftp.directoryList(); for (int i = 0; i < files.length; i++) { FTPFile file = files[i]; System.out.println(file.getName() + "-" + String.valueOf(file.size()/1024)); }
4.创建文件夹
在ftp服务器/dir目录下创建bb目录
ftp.changeDirectory("/dir"); ftp.createDirectory("bb");
5.删除文件夹
在ftp服务器/dir目录下删除bb目录
ftp.changeDirectory("/dir"); ftp.deleteDirectory("bb");
6.修改文件夹的名称
把ftp服务器/dir目录下的文件夹aa修改为aa2
ftp.changeDirectory("/dir"); ftp.executeCommand("rnfr aa"); ftp.executeCommand("rnto aa2");
7.修改文件的名称
把ftp服务器/dir目录下的file2.rar修改为file.rar
ftp.changeDirectory("/dir"); ftp.executeCommand("rnfr file2.rar"); ftp.executeCommand("rnto file.rar");
8.删除文件
删除ftp服务器/dir目录下的file.rar
ftp.changeDirectory("/dir"); ftp.deleteFile("file.rar");
9.下载文件
下载ftp服务器上/目录下的file.rar
ftp.changeDirectory("/"); byte[] data = ftp.downloadByteArray("file.rar"); InputStream inputStream = new ByteArrayInputStream(data);
10.上传文件
Filedata是一个File类型的数据,把Filedata上传到ftp服务器上/目录下,并且把上传的文件命名为file.rar
ftp.changeDirectory("/"); FileTransferOutputStream output = ftp.uploadStream("file.rar"); output.write(FileUtils.readFileToByteArray(Filedata)); output.close();