我目前正在提取war文件的内容,然后将一些新文件添加到目录结构,然后创建一个新的war文件.
这一切都是以编程方式从Java完成的 - 但是我想知道复制war文件然后只是附加文件会不会更有效 - 那么我就不必等待战争扩展然后必须再次压缩.
我似乎无法在文档或任何在线示例中找到这样做的方法.
任何人都可以提供一些提示或指示?
更新:
其中一个答案中提到的TrueZip似乎是一个非常好的java库附加到一个zip文件(尽管其他答案说它不可能这样做).
任何人都有关于TrueZip的经验或反馈,或者可以推荐其他类似的图书馆?
我阅读了如何将文件附加到 java 中的 tar 存档?,将文件附加到存档而不读取/重写整个存档并将条目添加到 tar 文件而不覆盖其现有内容但没有给出好的答案。此外,我没有足够的声誉发表评论。所以我在这里创建了一个新问题。
有没有办法在 tar 存档中附加文件?如果文件已经存在,我想替换它。
我已经开始编写以下方法,但是当添加文件时,它会删除存档内容。我在apache compress 网站上没有找到任何示例。
static final Logger LOG = Logger.getLogger(ShellClient.class);
public void appendFileInTarArchive(String tarPath, String tarFileName, String file2WriteName, String file2WriteContent) throws IOException {
if (tarPath == null || tarFileName == null || tarFileName.isEmpty()) {
LOG.warn("The path or the name of the tar archive is null or empty.");
return;
}
final File tarFile = new File(tarPath, tarFileName);
final File fileToAdd = new File(tarPath, file2WriteName); …Run Code Online (Sandbox Code Playgroud)