2017-06-19 42 views
2

是否可以从压缩的FTP服务器检索文件,并在流式传输时将其解压缩?压缩文件的仅内存流式传输

这是在云环境中运行的,我无法访问文件系统,因此它将在内存中完成。

我使用公网FTP客户端的方法:retrieveFileStream

+0

你有什么尝试?我想用ZipInputStream包装你的输入流应该工作:'新ZipInputStream(retrieveFileStream(...))' –

+1

请阅读这个线程,我认为它回答你的问题。 https://stackoverflow.com/questions/12030703/uncompressing-a-zip-file-in-memory-in-java –

回答

3

您正在使用Apache的公共库,并且使用的是回报的InputStream,所以你可以在ZipArchiveInputStream包裹它,阅读它,只要你喜欢的方法,如有人可能会认为它比java.util.zip更可靠。*解决方案

如果您无权访问Apache Commons,则可以使用ZipInputStream来封装源InputStream。

+0

所以Zip输入流负责标记等等,即它知道何时整个文件的一行已被流式传输?即我想遍历文件的每一行并解析它。 –

+0

@coolbreeze它只处理EndOfFile标记之间的读取。要逐行解析文件,您可以将文件读入缓冲区,直到遇到End Of Line。独立于平台的EOL表示为System.lineSeparator() – vadkou