JAVA 解决FTP下载文件不完整问题

在使用java的ftp下载服务器上的文件获取文件的byte[],然后对byte进行加密传输时,

       注意是要获取byte[],而不是下载文件到本地

发现下载的byte[]大小总是小于文件实际大小,并且下载的大小是变化的

到网上查阅发现,ftp传输是不稳定的,会随网络情况波动;

所以对下载的方法进行了修改;

import sun.net.ftp.FtpClient;
import sun.net.ftp.FtpProtocolException;

public String download(String ftpFile, FtpClient ftpClient) {
        
        InputStream is = null;
        byte[] data = null;
        try {
            // 获取ftp上的文件
            long size=ftpClient.getSize(ftpFile);
            System.out.println(ftpClient.getSize(ftpFile));
            is = ftpClient.getFileStream(ftpFile);
//            System.out.println(is.available());

            int count =is.available();
            System.out.println("count:"+count);

            while (count>0 || (data==null?0:data.length)

运行发现果然波动是很大的

JAVA 解决FTP下载文件不完整问题_第1张图片

JAVA 解决FTP下载文件不完整问题_第2张图片

JAVA 解决FTP下载文件不完整问题_第3张图片

JAVA 解决FTP下载文件不完整问题_第4张图片

 

参考:

https://blog.csdn.net/shb2058/article/details/52637213

你可能感兴趣的:(java,FTP)