FTPClient 批量文件下载 总结。

目标:从FTP客户端批量读取数据文件,并存入数据库中。

方法: 

使用org.apache.commons.net.ftp.client.FtpClient 来读取文件。

 使用jpa来存储。

 

遇到问题:

1、通过 ftpclient.

retrieveFileStream(filename)读取文件流有的为空。

解决方法:这个有好几个原因,在网上查到有很多解决方法,但是在我下载200个文件的时候,每个方法都不能完全解决。

总结一下,我所做的改动。

1、ftpclient每次调用retrieveFileStream方法后,必须显示的关闭 InputStream ,然后调用

ftpClient.completePendingCommand()方法。如果不调用方法,会出现不可预估的错误(如:下一次输入流可能为空)

2、在调用listFiles之前,调用ftpClient.enterLocalPassiveMode();方法,在每次下载完之后,

调用ftp.sendCommand("ls");以此来重置超时时间。

预防FTP连接超时,导致文件读取不全。否则的话,可能会在调用retrieveFileStream()方法后,程序假死,过一会会报连接异常,

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值