【问题标题】:file size difference when copying data into ftp using java program使用java程序将数据复制到ftp时文件大小差异
【发布时间】:2011-12-20 22:57:44
【问题描述】:

我编写了一个 java 程序来将文件 (*.dmp) 格式从我们的服务器复制到 FTP 服务器。程序运行良好,正在将文件复制到 ftp 目录中。

但唯一的问题是我复制到 FTP 后文件大小有一点差异。我的源文件大小为 2.47 GB。当我比较以 MB 为单位的文件大小时,在 FTP 服务器中,大小增加了 16 MB。我做了两次,它表现出相同的行为。但是当我手动复制到 FTP 目录(使用我们的 java 程序)时,文件大小是准确的。

我做错了什么吗?下面是我的java程序

    package dev.test;

import java.io.*;
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.*;
public class FTPTest {

      public static void main(String a[]) throws SocketException, IOException
      {
      FTPClient f= new FTPClient();
    f.connect("10.100.8.74");
    boolean flag =f.login("dspetrofac\\admin","admin");
    System.out.println(" is connected ::"+flag);

    // change working directory of FTP Server

    boolean isDirectoryChanged =f.changeWorkingDirectory("IT/Documentum Team/");

    System.out.println(" Is the working directory Changed :: "+isDirectoryChanged);



    // to copy from source to FTP

    InputStream inputFile = new FileInputStream(new File("\\\\dmt500aaashjuae\\testDumpAutomation\\testSiteDump.dmp"));
    boolean isSaved = f.storeFile("testSiteDump.dmp", inputFile);
    System.out.println("is File Saved in FTP Server :: "+isSaved);
    /*
      String list[] =f.listNames();
    for(int i=0;i<list.length;i++)
    {
      System.out.println(" file no"+i+":: "+list[i]);
    }

    */

      }
}

【问题讨论】:

标签: java ftp


【解决方案1】:

您需要调用setFileType( FTP.BINARY_FILE_TYPE) - 否则任何 CR / LF / CR + LF 都会被翻译(由于 FTP 协议中的 ASCII 模式是使用的实现的默认值),从而更改文件内容/大小。

【讨论】:

  • 就是这样。大多数时候更多地使用二进制传输!
猜你喜欢
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-11
  • 2021-05-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-25
相关资源
最近更新 更多