从 ByteStream 创建 ZIP/TGZ 存档
Posted
技术标签:
【中文标题】从 ByteStream 创建 ZIP/TGZ 存档【英文标题】:Create ZIP/TGZ archive from ByteStream 【发布时间】:2014-04-03 14:09:31 【问题描述】:我的问题的前提是我创建了一个永远不应该写入磁盘的ini文件,但是这个“文件”需要以某种方式压缩,另外这个文件需要写在一个文件夹中,而不是平放在压缩文件,例如文件夹/file.ini。
我最初的想法是只将这个文件创建到一个 ByteArrayOutputStream 中,这样可以满足文件不写入磁盘的要求。
但是在压缩文件时,我认为它需要存在于磁盘上,即使只是提供一个文件名。
有什么方法可以实现吗?
【问题讨论】:
【参考方案1】:是的,您可以使用 ZipOutputStream 之类的 -
ZipOutputStream zs = null;
try
zs = new ZipOutputStream(os); // Where os is your ByteArrayOutputStream
ZipEntry e = new ZipEntry(fileName); // fileName is your file (in the zip)
zs.putNextEntry(e);
zs.write(theContent); // theContent is the the file content.
finally
if (zs != null)
zs.close();
【讨论】:
感谢您的快速回复!可以想象,我也可以使用这种方法在我的压缩输出中创建任何目录? @MikeWells 下次请在您的帖子中包含您的整个问题。是的,您可以将文件存储在文件夹中 - 例如,zs.putNextEntry(new ZipEntry("aFolder/myFile.txt"));
以上是关于从 ByteStream 创建 ZIP/TGZ 存档的主要内容,如果未能解决你的问题,请参考以下文章