当前位置: 首页 > 知识库问答 >
问题:

如何使用Apache Commons Compress将更改文件追加到Tar存档

明正德
2023-03-14
TarArchiveEntry entry = new TarArchiveEntry(fileToArchive);
tarOutputStream.putArchiveEntry(entry);
IOUtils.copy(new FileInputStream(fileToArchive), tarOutputStream);

共有1个答案

姜德容
2023-03-14

在tar存档中,元数据(包括大小)放在实际内容之前。当使用不可搜索流时,不可能在已知大小后倒带和替换大小。

Apache Commons Compress仅支持tar的纯流模式,因此只有当条目的内容大小与写入元数据时的大小相同时,才有可能添加条目。

在归档日志之前,您应该研究旋转日志的方法。

 类似资料:
  • 问题内容: 如何在Go中将文件附加到现有的tar存档中?我没有在文档中看到任何明显的方法。 我有一个已经创建的tar文件,在关闭它之后,我想向它添加更多文件。 编辑 更改文档中的示例并遵循给出的答案,我仍然没有得到预期的结果。前三个文件正在写入tar,但是当我再次关闭并打开文件以对其进行写入时,永远不会写入新文件。代码运行正常。我不知道我在想什么。 以下代码为我提供了一个tar文件,其中包含三个文

  • 问题内容: 我想用Java创建一个tar归档文件。我有不断创建的文件,我希望工作线程从队列中引用这些文件并将其复制到存档中。 我尝试使用Apache Compression库的TarArchiveOutputStream来执行此操作,但是我不希望在程序的整个过程中都保持归档处于打开状态(因为除非最终确定归档文件,否则它可能会损坏- 因此,我宁愿将其追加到批处理),而我还没有找到一种很好的方法来通过

  • < code>fd.append("upload ",file)产生, 产生, 但我需要这个, 这是我的代码:

  • 问题内容: 我当前正在提取war文件的内容,然后将一些新文件添加到目录结构中,然后创建一个新的war文件。 所有这些都是通过Java以编程方式完成的-但我想知道,复制war文件然后追加文件是否会更有效-那么只要战争扩大,我就不必等待,再次被压缩。 但是,在文档或任何在线示例中,我似乎都找不到找到此方法的方法。 任何人都可以给一些提示或指示吗? 更新: 答案之一中提到的TrueZip似乎是一个非常好

  • 我阅读了如何在java中将文件附加到tar存档?,将文件附加到存档而无需读取/重写整个存档,并在不覆盖其现有内容的情况下将条目添加到tar文件,但没有给出好的答案。此外,我没有足够的声誉来发表评论。所以我在这里创建了一个新问题。 有没有办法将文件附加到tar存档中?如果文件已经存在,我想替换它。 我已经开始编写下面的方法,但是当添加文件时,它会删除存档内容。我在apache compress网站上

  • 问题内容: 如何在注入Jenkins时将文本追加到文件中 我希望看到 25在哪里 这是我的尝试 错误: 版本:= 1.0。$ {env.BUILD_ID}:替换错误 注意文件在当前目录中 问题答案: 是一个groovy变量,而不是一个shell变量。由于您使用了单引号(),因此groovy 不会 替换字符串中的变量,并且Shell也不知道。您需要使用双引号并让groovy进行替换 或使用外壳程序知