使用java程序将数据复制到ftp时的文件大小差异

时间:2011-11-03 07:51:17

标签: java ftp

我编写了一个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]);
    }

    */

      }
}

1 个答案:

答案 0 :(得分:9)

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