0

我的问题的前提是我创建了一个永远不应该写入磁盘的ini文件,但是这个'文件'需要以某种方式进行压缩,另外需要写入该文件在一个文件夹内,不是在压缩文件中的文件夹,例如文件夹/ file.ini。从ByteStream创建ZIP/TGZ档案

我最初的想法是只创建一个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(); 
    } 
} 
+0

感谢您的快速反应!可以想象,我也可以使用这种方法在我的压缩输出中创建任何目录? –

+0

@MikeWells下一次**请**在您的帖子中包含您的整个问题。是的,您可以将文件存储在文件夹中 - 例如,'zs.putNextEntry(new ZipEntry(“aFolder/myFile.txt”));' –