我目前正在提取war文件的内容,然后将一些新文件添加到目录结构,然后创建一个新的war文件.
这一切都是以编程方式从Java完成的 - 但是我想知道复制war文件然后只是附加文件会不会更有效 - 那么我就不必等待战争扩展然后必须再次压缩.
我似乎无法在文档或任何在线示例中找到这样做的方法.
任何人都可以提供一些提示或指示?
更新:
其中一个答案中提到的TrueZip似乎是一个非常好的java库附加到一个zip文件(尽管其他答案说它不可能这样做).
任何人都有关于TrueZip的经验或反馈,或者可以推荐其他类似的图书馆?
我有zip存档,其中包含一堆纯文本文件.我想解析每个文本文件数据.这是我到目前为止所写的内容:
try {
final ZipFile zipFile = new ZipFile(chooser.getSelectedFile());
final Enumeration<? extends ZipEntry> entries = zipFile.entries();
ZipInputStream zipInput = null;
while (entries.hasMoreElements()) {
final ZipEntry zipEntry = entries.nextElement();
if (!zipEntry.isDirectory()) {
final String fileName = zipEntry.getName();
if (fileName.endsWith(".txt")) {
zipInput = new ZipInputStream(new FileInputStream(fileName));
final RandomAccessFile rf = new RandomAccessFile(fileName, "r");
String line;
while((line = rf.readLine()) != null) {
System.out.println(line);
}
rf.close();
zipInput.closeEntry();
}
}
}
zipFile.close();
}
catch (final IOException ioe) {
System.err.println("Unhandled exception:");
ioe.printStackTrace();
return;
}
Run Code Online (Sandbox Code Playgroud)
我需要一个RandomAccessFile吗?我失去了我拥有ZipInputStream的地步.