Java ZIP文件从一个ZIP复制并粘贴到另一个ZIP

本文关键字:ZIP 复制 另一个 一个 文件 Java | 更新日期: 2023-09-27 18:19:32

我正在开发Minecraft Mod安装程序,并考虑将引擎从C#移动到Java。如果可以将一些文件从一个zip复制到另一个zip,而不将它们提取到临时文件夹中,我现在想这样做,如果可以,我该如何处理?

在旧引擎中,它将文件解压缩到一个临时文件夹,然后将它们添加到Minecraft.jar

Java ZIP文件从一个ZIP复制并粘贴到另一个ZIP

jre中的原生zip支持可以做到这一点。试试这个:

void substitute(ZipInputStream zis, ZipOutputStream zos) {
  for (ZipEntry ze = zis.getNextEntry(); ze != null; ze = zis.getNextEntry()) {
    if (ze.getName() is what you want to copy) {
      zos.putNextEntry(ze)
      Array[Byte] buffer = new Array[Byte](1024)
      for (int read = zis.read(buffer); read != -1; read = zis.read(buffer)) {
        zos.write(buffer, 0, read)
      }
      zos.closeEntry
    }
  }
  zos.close()
  zis.close()
}

注意:zip文件中的数据被解压缩并再次压缩。