Java 从ByTestStream创建ZIP/TGZ存档

Java 从ByTestStream创建ZIP/TGZ存档,java,compression,archive,bytearrayoutputstream,bytearrayinputstream,Java,Compression,Archive,Bytearrayoutputstream,Bytearrayinputstream,我的问题的前提是,我创建了一个永远不应该写入磁盘的ini文件,但这个“文件”需要以某种方式进行压缩,此外,这个文件需要写入文件夹中,而不是压缩文件中的平面文件,例如folder/file.ini 我最初的想法是只在ByteArrayOutputStream中创建此文件,这将满足文件不写入磁盘的要求 然而,在压缩文件时,我认为它需要存在于磁盘上,即使只是提供一个文件名 有什么方法可以做到这一点吗?是的,你可以使用a和类似的东西- ZipOutputStream zs = null; try {

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

我最初的想法是只在ByteArrayOutputStream中创建此文件,这将满足文件不写入磁盘的要求

然而,在压缩文件时,我认为它需要存在于磁盘上,即使只是提供一个文件名

有什么方法可以做到这一点吗?

是的,你可以使用a和类似的东西-

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.putnextery(newzipentry(“aFolder/myFile.txt”)