在 Java 中使用 Zip 和 GZip 文件
自从我完成Java I / O以来已经有一段时间了,我不知道使用Zip和GZip文件的最新“正确”方法。我不一定需要一个完整的工作演示 - 我主要在寻找要使用的正确接口和方法。是的,我可以查找任何关于此的随机教程,但是性能是一个问题(这些文件可能会变得非常大),我确实关心使用最好的工具来完成这项工作。
我将实现的基本过程:
- 将一堆文件(可能被压缩、g压缩或两者)下载到临时文件夹。
- 将所有提取的文件添加到临时文件夹中的新 zip 文件中。
输入文件可能会被压缩和存档多次。例如,“完全提取”应该采用以下任何输入(我无法控制这些输入),并留下:foo.txt
foo.txt.gz
foo.txt.zip
foo.txt.gz.zip
foo.txt.zip.gz
- ...
foo.txt.gz.gz.gz.zip.gz.zip.zip.gz.gz
- ...
然后,我可能会留下,,,所以我只需将它们全部添加到具有一些通用名称的新zip文件中即可。foo.txt
bar.mp3
baz.exe
问题:
- 由于文件大小是一个潜在的问题,我应该使用它(接口/类/方法)来快速:
- 提取 zip 文件?
- 提取 gzip 文件?
- 写zip文件?
- 在写回磁盘之前,我是否最好将各个提取的文件保留在内存中?阿尔布
- 潜在的大文件会使这成为一个坏主意吗?