【发布时间】:2015-10-06 09:23:02
【问题描述】:
我写了一个从 FTP 服务器下载文件的 java 类。一切看起来都很好,但是当我检查文件的大小时,它们比原始文件小了一点。
知道为什么会这样吗?
import java.io.FileOutputStream;
import java.io.BufferedOutputStream;
import java.io.OutputStream;
import java.io.IOException;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import java.io.IOException;
public class Downloader {
public static void main(String[] args) {
String server = "ftp.example.gov";
int port = 21;
String user = "anonymous";
String pass = "anonymous";
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(server, port);
ftpClient.login(user, pass);
ftpClient.cwd("dir1/dir2/gz");
FTPFile[] files = ftpClient.listFiles();
for (FTPFile file : files) {
String downloadFile = "/home/andrej/Documents/" + file.getName();
OutputStream output = new BufferedOutputStream(new FileOutputStream(downloadFile));
boolean success = ftpClient.retrieveFile(file.getName(), output);
output.close();
if (success) {
System.out.println(file.getName());
}
}
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
e.printStackTrace();
} finally {
try {
if (ftpClient.isConnected()) {
ftpClient.logout();
ftpClient.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
【问题讨论】:
-
小了多少?可以同时包含两个文件大小吗?
-
原始文件 (gzip) 大小为 20 MB,下载文件大小为 16 MB。
-
嗯,它可能没有 4MB 的回车...
标签: java ftp ftp-client