赞
踩
方法说明
[接口文档地址](https://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClient.html)
/**
* 获取文件流
* 返回一个InputStream,从中可以读取服务器中的命名文件。
* 如果当前文件类型为ASCII,则返回的InputStream会将文件中的行分隔符转换为本地表示形式。
* 当您完成对InputStream的读取时,必须关闭它。InputStream本身将负责在关闭时关闭父数据连接套接字。
* 要完成文件传输,必须调用completePendingCommand并检查其返回值以验证是否成功。
* 如果不这样做,后续命令可能会出现意外行为。
*
* @param fileName 文件名
* @return 文件流
*/
public InputStream retrieveFileStream(String remote) throws IOException {
return this._retrieveFileStream(FTPCmd.RETR.getCommand(), remote);
}
使用示例
/** * 获取ftp文件流转为文件 * * @return 文件列表 */ public List<File> getFile() { FtpUtil ftpUtil = new FtpUtil(ftpProperty); String remotePath = "test"; List<File> files = Lists.newArrayList(); FTPFile[] ftpFiles = ftpUtil.listFiles(remotePath); for (FTPFile ftpFile : ftpFiles) { //切换路径 ftpUtil.changeWorkingDirectory(remotePath); String name = ftpFile.getName(); log.info(name); //获取文件流 InputStream inputStream = ftpUtil.retrieveFileStream(name); log.info("inputStream:{}", inputStream); //写入到文件 File file = new File(name); File file1 = FileUtil.writeFromStream(inputStream, file); files.add(file1); try { //关闭流 inputStream.close(); ftpUtil.completePendingCommand(); } catch (IOException e) { e.printStackTrace(); } } return files; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。