糾結了一天,終於有成果,總結如下:
1.工具選擇:org.apache.commons.net.ftp.*,教程網上一大把;
2.思路:
單個文件下載:FTPClient.retrieveFileStream() ,把輸出流定向到一個本地文件即可;
文件打包下載:需要用到FileOutputStream 、ZipOutputStream ,從FTP拿到輸入流,寫到壓縮流,壓縮流定向到壓縮文件;
FileOutputStream fous = new FileOutputStream(zipfile);
ZipOutputStream zipOut = new ZipOutputStream(fous);
FTPClient.retrieveFileStream() 可以得到FTP輸入流,寫到壓縮流,壓縮流定向到壓縮文件;
3.注意問題:
一個FTPClient對象只能有一個FTP輸入流,多個文件時,需要先logout()FTPClient對象,之後再重連,否則第二個文件得到的輸入流會爲空。