Обновление Zip-файла или файлов в Zip-файле без извлечения Zip-файла с использованием Java - PullRequest
1 голос
/ 26 июня 2019

У меня есть zip-файл с именем test.zip, в этом zip-файле у меня есть 2 файла file1.txt и file2.txt.Я хочу обновить файл file1.txt и добавить один файл file3.txt в zin-файл, используя основные концепции Java без извлечения zip-файла.Может кто-нибудь предложить, какой подход я должен использовать для этого случая использования.заранее спасибо.

1 Ответ

0 голосов
/ 26 июня 2019

получить файл, над которым вы хотите выполнить операцию,

     try (FileInputStream fis = new FileInputStream( String fileName = "C:/Users/Administrator/Desktop/log.zip";);
                    BufferedInputStream bis = new BufferedInputStream(fis);
                    ZipInputStream zis = new ZipInputStream(bis)) {

                ZipEntry ze;

                while ((ze = zis.getNextEntry()) != null) {

                    System.out.format("File: %s Size: %d Last Modified %s %n",
                            ze.getName(), ze.getSize(),
                            LocalDate.ofEpochDay(ze.getTime() / MILLS_IN_DAY));
                }
            }   

Затем получить объект для чтения буфера, как показано ниже,

    ZipEntry entry = entries.nextElement();
    InputStream stream = zipFile.getInputStream(entry);
    BufferedReader br = new BufferedReader(new InputStreamReader(stream, "UTF-8"));

Как только он у вас будет, вы можете изменить содержимоеas

    while (line = br.readLine() != null)
        {
            if (line.contains("java"))
                line = line.replace("java", " ");
            lines.add(line);
        }
    FileWriter fw = new FileWriter(f1);
    BufferedWriter out = new BufferedWriter(fw);
    out.write(lines.toString());
...