从ByteStream创建ZIP / TGZ存档

时间:2014-04-03 14:09:32

标签: java compression archive bytearrayoutputstream bytearrayinputstream

我的问题的前提是我创建了一个永远不应该写入磁盘的ini文件,但是这个'文件'需要以某种方式压缩,另外这个文件需要写在一个文件夹中,而不是平放在压缩文件,例如folder / file.ini。

我最初的想法是仅将此文件创建到ByteArrayOutputStream中,这样可以满足文件未写入磁盘的要求。

然而,当涉及压缩文件时,我认为它需要存在于磁盘上,即使只提供文件名。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分: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();
  }
}