使用FTP下载文件connect.retrieveFileStream(filename) 获取不到InputStream流,返回null的问题

    使用同事的代码做FTP下载文件,InputStream in = connect.retrieveFileStream(fileName);执行这句时InputStream总是获取为空


使用FTP下载文件connect.retrieveFileStream(filename) 获取不到InputStream流,返回null的问题_第1张图片


  后来把代码改成ftp.retrieveFileStream(new String(dirPath[1].getBytes("UTF-8"), "ISO-8859-1"));加上字符集指定就好了,因为获取文件时有中文,出现乱码而获取不到。

使用FTP下载文件connect.retrieveFileStream(filename) 获取不到InputStream流,返回null的问题_第2张图片


        还有这句也不能少 ftp.enterLocalPassiveMode(); 这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在Linux上,由于安全限制,可能某些端口没有开启,所以就出现阻塞。


你可能感兴趣的:(使用FTP下载文件connect.retrieveFileStream(filename) 获取不到InputStream流,返回null的问题)