【问题标题】:Checing if FTPClient download has received all bytes检查 FTP 客户端下载是否已收到所有字节
【发布时间】:2011-08-26 14:34:40
【问题描述】:

我使用FTPClient 从FTP Server 下载图像文件。我的样子是这样的:

public class FtpDownloadDemo
{
 public static void main(String[] args)
 {
  FTPClient client = new FTPClient();
  FileOutputStream fos = null;

  try
  {
    client.connect("ftp.domain.com");
    client.login("user", "pass");

    //
    // The remote filename to be downloaded.
    //
    String filename = "side.jpg";
    fos = new FileOutputStream(filename);

    //
    // Download file from FTP server
    //
    client.retrieveFile("/" + filename, fos);
  }
  catch (IOException e)
  {
    e.printStackTrace();
  }
  finally
  {
    try
    {
      if (fos != null)
      {
        fos.close();
      }
      client.disconnect();
    }
    catch (IOException e)
    {
      e.printStackTrace();
    }
  }

 }
}

下载文件后,输出看起来失真,如下所示;

有没有办法检查是否所有字节都已收到,否则等到所有字节都收到?

【问题讨论】:

    标签: java ftp-client apache-commons-net


    【解决方案1】:

    我强烈怀疑真正的问题是传输是以 ASCII 模式完成的,而不是二进制模式。

    在开始转移之前尝试拨打client.setFileType(FTP.BINARY_FILE_TYPE);。

    【讨论】:

      猜你喜欢
      • 2020-07-09
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 2015-07-05
      • 2016-04-09
      • 1970-01-01
      • 2018-06-11
      • 2012-05-19
      相关资源
      最近更新 更多