Fichier ZIP Java copier et coller d'un zip à un autre


Je travaille sur le programme d'installation de Minecraft Mod et je pense à déplacer le moteur de C # vers Java, je voudrais maintenant s'il est possible de copier certains fichiers d'un zip à un autre sans les extraire dans un dossier temporaire et si cela est possible, comment pourrais-je procéder?

Dans l'ancien moteur, il décompressé les fichiers dans un dossier temporaire puis ajoutés à la Minecraft.jar

Author: Ryan The Leach, 2012-01-06

1 answers

Le support zip natif de jre peut le faire. Essayez ceci:

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()
}

Remarque: les données contenues dans le fichier zip sont décompressées et compressées à nouveau.

 2
Author: Zang MingJie, 2012-01-06 10:31:45