加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

FTP文件的复制

(2018-04-10 11:41:10)
标签:

it

分类: java

在实现该功能后,个人感觉有几个常用的FTPClient的方法:

1、ftpClient.retrieveFileStream(String remote);


使用该方法后,调用ftpClient.getReply()方法,否则下次调用该方法会返回null;

  • 1
  • 2

2、ftpClient.storeFile(String remote, InputStream local);//复制文件


当使用该方法返回true,但是目录没有成功复制文件时,可以设置一下被动模式ftpClient.enterLocalPassiveMode();

  • 1
  • 2

3、ftpClient.changeWorkingDirectory(String pathname);//切换目录


此方法可以切换目录。但是个人在用过程中,对其返回值true和false感觉有点怪。

  • 1
  • 2

4、ftpClient.rename(String from, String to); //移动文件到新目录


当只是需要移动文件时,可以选择此方法,不必像楼主刚开始时那样,又是判断有没有目录、复制、删除文件。

  • 1
  • 2

5、ftpClient.deleteFile(String pathname); //删除文件

6、ftpClient.makeDirectory(String pathname);//创建目录

7、ftpClient.retrieveFile(String remote, OutputStream local)//移动文件

对于复制文件,如果小文件,直接调用ftpClient.storeFile(String remote, InputStream local);可能可以成功,但是如果文件偏大,可能复制就会出问题。所以利用将文件读到内存的方法复制确实没问题。


ftpClient.setBufferSize(1024); 
ByteArrayOutputStream fos=new ByteArrayOutputStream();
ftpClient.retrieveFile("\\"+ftpFile.getName(), fos);
ByteArrayInputStream in=new ByteArrayInputStream(fos.toByteArray());
ftpClient.storeFile("\\"+errorDir+"\\"+ftpFile.getName(), in);
fos.close();
in.close();

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有