我当前正在提取一个 war 文件的内容,然后将一些新文件添加到目录结构中,然后创建一个新的 war 文件。
这一切都是通过Java以编程方式完成的 - 但我想知道复制战争文件然后附加文件是否会更有效 - 然后我就不必等待战争扩大然后必须再次被压缩。
我似乎无法在文档或任何在线示例中找到执行此操作的方法。
任何人都可以提供一些提示或指示吗?
UPDATE:
正如其中一个答案中提到的那样,TrueZip 似乎是一个非常好的 java 库,可以附加到 zip 文件(尽管其他答案说不可能做到这一点)。
有人对 TrueZip 有经验或反馈吗?或者可以推荐其他类似的库吗?
在 Java 7 中我们得到了压缩文件系统 http://docs.oracle.com/javase/7/docs/technotes/guides/io/fsp/zipfilesystemprovider.html允许添加和更改 zip(jar、war)中的文件,而无需手动重新打包。
我们可以直接写入 zip 文件内的文件,如下例所示。
Map<String, String> env = new HashMap<>();
env.put("create", "true");
Path path = Paths.get("test.zip");
URI uri = URI.create("jar:" + path.toUri());
try (FileSystem fs = FileSystems.newFileSystem(uri, env))
{
Path nf = fs.getPath("new.txt");
try (Writer writer = Files.newBufferedWriter(nf, StandardCharsets.UTF_8, StandardOpenOption.CREATE)) {
writer.write("hello");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)