java переименование содержимого zip / gz файла без надувания - PullRequest
1 голос
/ 05 мая 2020

Для файла .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 без полностью надувается?

Подскажите пожалуйста.

1 Ответ

1 голос
/ 24 мая 2020

Zip4j имеет функцию переименования файлов в zip-архиве. Однако он поддерживает только zip-файлы, но не gzip.

...