- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我写了一个从 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();
}
}
}
}
最佳答案
尝试以Binary模式下载,你的区别可能是两台服务器回车不同造成的。如果您的服务器是 Windows,您将有 CRLF,而 Linux 将只有换行符。 ASCII 模式的 FTP 会自动为您进行转换。
当您比较两个文件时,它们在文本方面是否相同?如果是这样,我认为您不必担心。
关于Java FTPClient 不传输整个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31462544/
自从我不得不从 java ftp 文件以来已经有很多年了,所以我对这种可能性有点脱节。我找到的文档列出了我使用的两种可能性。标准 Sun ftp 实现和 Apache 的 Jakarta ftp 解决
我尝试在我的应用程序中使用 ftp 客户端 第一个我使用org.apache.commons.net.ftp.FTPClient 但在Linux服务器上运行时 可以登录ftp服务器,但无法获取文件列表
我的 ftp 位置有 3 个不同大小的文件,分别是 2KB、76KB 和 216MB。我必须一个接一个地处理这些文件,我可以使用retrieveFileStream(FILE_NAME_HERE)轻松
FTPClient.changeWorkingDirectory & changeToParentDirectory()。如何更改 ftpCient 中的目录。在资源管理器中,ftp 路径如下所示 f
我有一个给定的 FTP 服务器。我可以通过 WinSCP 和其他程序连接到服务器。我已经通过 Java 连接到服务器,但过了一会儿我无法连接。根据 WinSCP,我可以一直连接。现在的问题是服务器是问
我正在尝试从 ftp 服务器下载文件,但在检索文件时卡住了。我正在使用 commons-net-3.6.jar 我注意到的事情 当我使用 ftpClient.enterRemotePassiveMod
我想从 Android 应用程序上传文件到 FTP 服务器。我为此使用 ftp4j.jar,因为它具有附加功能,可以附加到服务器上已有的文件。以前工作正常,但现在它已停止工作附加文件。其余正在工作。我
我正在制作一个应用程序,可让您一次将最多 5 个文件上传到服务器。我正在使用 apache FTPClient 和 Filezilla 服务器。当我一次上传一个文件时,它可以工作,但是当我尝试进行 2
大家好,我正在尝试上传一个小文件,如 4mb 或其他带有 apache commons ftpclient 的文件,但它没有上传我的文件,没有给我任何错误,并说上传成功这是我的代码,请提前帮助我谢谢.
我正在使用 Apache Commons net FTPClient 登录 FTP 服务器并读取文件。我成功登录,并且可以看到它登录成功,因为它在标题字符串中显示了工作目录路径。但是,当我使用 lis
我试图从 ftp 服务器获取列表并且有编码问题 FTPClient.listfiles(String path) 方法 如果路径包含非拉丁字符,它总是返回空数组。 (我也在 unicode 中使用带有
我制作了一个小应用程序,可以将文件上传到 FTP 服务器。问题是我在方法中使用了被动模式 enterLocalPassiveMode() 最近有人告诉我在 FTP 服务器上不允许使用被动模式,所以我应
我写了一个从 FTP 服务器下载文件的 java 类。一切看起来都很好,但是当我检查文件大小时,它们比原始文件小一点。 知道为什么会这样吗? import java.io.FileOutputStre
我正在使用 Apache FTPClient 获取文件和子目录文件列表。但它无法从带空格的目录名称中获取文件列表。这是一个示例 - 我尝试了两个不同的目录: FTPClient client
我是 android 和 java 编程的新手。我写了下面的代码来连接到 ftp 服务器 public class NewMainActivity extends Activity { TextVie
1、Ubuntu 安装 Vsftpd 服务 1、安装 sudo apt-get install vsftpd 2、添加用户(uftp) sudo useradd -d /home/
我有一个本地 FTP 服务器(使用 FileZilla 服务器创建),并且 XLS 文件很少。我需要将文件输入流返回到我的 Java 应用程序,以便我可以解析数据等。 为此,我尝试使用 FTPClie
我尝试使用 FTPClient 类进行连接。这段代码运行完美: client.connect("172.20.5.131"); 但是当 IP 地址类似于 -1406991772 时,我无法连接。我怎样
我正在使用 FTPClient (org.apache.commons.net.ftp.FTPClient) 将一些文件上传到 FTP 服务器。 我需要检查父目录是否存在;并根据需要创建它们
我必须上传一个zip文件到ftp服务器,这里的zip文件也是动态构建的。 import java.io.File; import java.io.FileInputStream; import jav
我是一名优秀的程序员,十分优秀!