java - 将随机访问文件透明写入 zip 文件

标签 java zip random-access

我有一个 java 应用程序,它将 RandomAccessFile 写入文件系统。它必须是 RAF,因为有些事情直到最后才知道,然后我会回溯并在文件开头写入一些信息。

我想以某种方式将该文件放入 zip 存档中。我想我可以在最后执行此操作,但这将涉及复制迄今为止已写入的所有数据。由于这些文件可能会变得非常大,因此我更喜欢一种不涉及复制数据的方法。

有没有办法获得像“ZipRandomAccessFile”这样的东西,就像 jdk 中提供的 ZipOutputStream 一样?

它不必只是jdk,我不介意使用第三方库来完成工作。

有什么想法或建议吗?

最佳答案

也许您需要更改文件格式,以便可以按顺序写入。

事实上,由于它是一个 Zip 并且 Zip 可以包含多个条目,因此您可以将顺序数据写入一个 ZipEntry,并将“仅在完成时”已知的数据写入单独的 ZipEntry - 这样可以两全其美。

它很容易编写,不必返回到大顺序 block 的开头。它很容易阅读 - 如果消费者在读取更大的资源之前需要知道“标题”数据,他们可以在继续之前读取该 zip 条目中的数据。

关于java - 将随机访问文件透明写入 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12300233/

相关文章:

java - 需要在 Derby 中编写正确的查询

Java BigDecimal setScale 和 half_even 四舍五入

java - 强制 SSL 客户端套接字发送证书

windows-mobile - 如何在 Windows Mobile 中解压缩 .zip 文件?

java - 在写入文件时读取文件

java - JUnit 测试私有(private)变量?

zip - 如何从命令行创建文件以测试 Zip Slip 漏洞

Python:迭代两个列表并将它们写入到同一行的outfile中

java - HashMap 键的随机访问

java - 缓冲的 RandomAccessFile java