Для файла .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();
И аналогично для расширения .gz с помощью GZIPInputStream. Поскольку файлы .gz имеют только одно содержимое, zipentry не требуется. Мы можем напрямую раздуть его, используя имя как файл .gz (без суффикса). Мой вопрос:
Могу ли я переименовать содержимое .zip (а также d .gz), не увеличивая содержимое (а)? В файле .gz, поскольку у нас одно и то же имя файла .gz и содержимого, если мы переименуем файл .gz, это также переименует его содержимое.
Для файла .zip могу я просто переименовать ZipEntry без полностью надувается?
Подскажите пожалуйста.