Java ZIP文件从一个zip文件复制并粘贴到另一个文件
问题描述:
我正在研究Minecraft Mod安装程序并考虑将引擎从C#移动到Java想现在如果可以将某些文件从一个zip文件复制到另一个文件而无需将它们解压缩到一个临时文件夹,如果可能的话,我该如何解决这个问题?Java ZIP文件从一个zip文件复制并粘贴到另一个文件
在旧发动机它的文件解压缩到一个临时文件夹,然后将它们添加到Minecraft.jar
答
在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文件里面的数据被解压并再次压缩。
+0
我会尝试一下,在IntelliMod for MMI上工作 – 2012-01-06 10:33:00
+0
那么'ze.getName()'文件的名称是什么? – 2012-01-06 10:37:38
[你有什么尝试](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – RanRag 2012-01-06 10:14:53
我还没有尝试过,因为我只是想看看它是否可能 – 2012-01-06 10:19:57