使用同事的代码做FTP下载文件,InputStream in = connect.retrieveFileStream(fileName);执行这句时InputStream总是获取为空
后来把代码改成ftp.retrieveFileStream(new String(dirPath[1].getBytes("UTF-8"), "ISO-8859-1"));加上字符集指定就好了,因为获取文件时有中文,出现乱码而获取不到。
还有这句也不能少 ftp.enterLocalPassiveMode(); 这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在Linux上,由于安全限制,可能某些端口没有开启,所以就出现阻塞。