纠结了一天,终于有成果,总结如下:
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对象,之后再重连,否则第二个文件得到的输入流会为空。