當我用下面的代碼下載文件時,它只是將文件寫入本地的目標文件,但文件大小都爲零。 有人可以說爲什麼會發生這種情況,以及如何解決它?ftp不能在java中正確下載文件?
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import java.io.FileOutputStream;
import java.io.IOException;
public class FtpDownload {
public static void main(String[] args) {
FTPClient client = new FTPClient();
FileOutputStream fos = null;
String filename = "config.zip";
try {
client.connect("ftpsrv");
client.login("user", "user");
for (FTPFile file : client.listFiles()) {
filename = "C:\\tmp\\user\\" + file.getName();
if (file.isFile()) {
fos = new FileOutputStream(filename);
client.retrieveFile(filename, fos);
System.out.println(file.getName());
} else if (file.isDirectory()) {
System.out.println("directory: " + file.getName());
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null) {
fos.close();
}
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
這與Java Swing庫有什麼關係?爲什麼使用Swing標籤? – 2012-02-29 15:18:06
您的流處理是一場噩夢,您只關閉最後一個FileOutputStream。 – home 2012-02-29 15:22:06