对于.zip文件,我们在Java中有ZipInputStream和ZipOutputStream,用于读取和写入zip文件。
zin = new ZipInputStream(new FileInputStream("xx.zip"));
ZipEntry entry = zin.getNextEntry();
while (entry != null) {
String name = entry.getName();
File file = new File(name);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
byte[] bytesIn = new byte[1024];
while ((int read = zipIn.read(bytesIn)) != -1) {
bos.write(bytesIn, 0, read);
}
bos.close();
// code for renaming file ... here ...
// . . .
entry = zin.getNextEntry();
}
zin.close();
同样,使用GZIPInputStream对.gz进行膨胀也是如此。由于.gz文件只有一个内容,因此不需要zip条目。我们可以使用.gz文件的名称直接对其进行扩展(不带后缀(。我的问题是:
我可以在不夸大内容的情况下重命名.zip的内容(以及.gz(吗?在.gz文件中,由于.gz文件和内容的名称相同,如果重命名.gz文件,也会重命名其内容。
对于.zip文件,我可以简单地重命名ZipEntry而不完全膨胀吗?
请提出建议。
Zip4j具有重命名zip中文件的功能。不过,它只支持zip文件,而不支持gzip。