关于FTPClient卡死问题

ftpclient在调用retrieveFileStream(String remote)之后,返回inputstream

如果不想关闭ftp,继续读取其他文件

一定要先关闭inputstream,然后再调用completePendingCommand 方法。

这样可以继续读取另外的文件,否则很大的可能会程序卡死。

原因是completePendingCommand()会一直在等FTP Server返回226 Transfer complete,

但是FTP Server只有在接受到InputStream执行close方法时,才会返回

// ftp获取文件
            InputStream in = ftpClient.retrieveFileStream(filename);
            FileUtil.writeFromStream(in,targetPath);
            in.close();
            ftpClient.completePendingCommand();

参考:https://www.cnblogs.com/younldeace/p/5198217.html

posted @ 2021-11-10 14:30  enjoybeng  阅读(668)  评论(0)    收藏  举报