作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在解压缩 Zip 文件。由于有两种类型的存档 - Zip 和 GZip。
我正在使用以下内容
ZipFile zipFile = new ZipFile(file, ZipFile.OPEN_READ);
但是对于 GZip 类型的存档,它给出了以下错误
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
此代码适用于 Zip 压缩类型的存档,不适用于 GZip
有没有办法使用上面的代码,因为我有跨各种功能使用 ZipFile 的现有功能。如果我将 ZipFile 接口(interface)更改为 ZipInputStream 或 GZipInputStream,那么我需要更改多项内容。
编辑:如果传入的存档是 Zip 和 GZip 类型,我是否需要按照@Joachim Sauer 的评论进行不同的实现
最佳答案
正如@Joachim_Sauer 所说,它们是苹果和李子。
看看apache的compress ,它可以处理两种(和更多)压缩/归档类型。但是,您需要执行不同的实现,并且您必须自己弄清楚要使用哪种实现(无论您处理的是 zip 文件还是 gzip 文件)。
关于java - 为什么 ZipFile(file, ZipFile.OPEN_READ) 不适用于 GZip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13644538/
我是一名优秀的程序员,十分优秀!