【发布时间】:2011-07-14 12:35:45
【问题描述】:
已解决
原来我误解了 available() 方法的实际作用,所以我只是修改了将数据写入到这里的代码:
int b = input.read();
while (b != -1) {
output.write(b);
b = input.read();
}
下次我会研究一种更有效的阅读/写作方法,现在我很高兴我能成功。感谢您的帮助!
原帖
我正在使用 Commons-Net 库通过 FTP 与服务器交互,当我尝试将文件从服务器下载到本地计算机时遇到了问题。我不知道这是否是 Comments-Net.FTPClient 中的错误,但很有可能我没有正确使用该库。也就是说,当我用谷歌搜索问题时,我无法找到解决方案,并且我看到的示例代码似乎使用与我相同的方法来下载文件。
无论如何,实际问题是下载的一些文件完全是空的,而它们应该包含数据。它是随机发生的,所以每次我下载所有文件时,不同的文件最终都是空的。我假设我从服务器读取数据或将其写入文件的方式存在问题。
代码如下:
// For each file
InputStream input = ftp.retrieveFileStream(sourcePath);
ftp.completePendingCommand();
OutputStream output = new FileOutputStream(new File(destinationPath));
while (input.available() > 0) {
output.write(input.read());
}
input.close();
output.close();
我对网络还很陌生,所以我只是很傻,做一些非常简单的错误吗?
【问题讨论】:
标签: java ftp download corrupt-data apache-commons-net