【问题标题】:Create ZIP/TGZ archive from ByteStream从 ByteStream 创建 ZIP/TGZ 存档
【发布时间】:2014-04-03 14:09:31
【问题描述】:

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

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

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

有什么方法可以实现吗?

【问题讨论】:

    标签: java compression archive bytearrayoutputstream bytearrayinputstream


    【解决方案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"));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 2022-06-24
    相关资源
    最近更新 更多