Изменение текстового файла в ZIP-архиве на Java

Мой вариант использования требует, чтобы я открыл файл txt, скажем, abc.txt, который находится внутри zip-архива, который содержит пары значений ключа -в форме

key1=value1

key2=value2

.. и так далее, где каждая пара значений ключа -находится в новой строке. Я должен изменить одно значение, соответствующее определенному ключу, и положить текстовый файл обратно в новую копию архива. Как мне это сделать в java?

Моя попытка до сих пор:

    ZipFile zipFile = new ZipFile("test.zip");
    final ZipOutputStream zos = new ZipOutputStream(new FileOutputStream("out.zip"));
    for(Enumeration e = zipFile.entries(); e.hasMoreElements(); ) {
        ZipEntry entryIn = (ZipEntry) e.nextElement();
        if(!entryIn.getName().equalsIgnoreCase("abc.txt")){
            zos.putNextEntry(entryIn);
            InputStream is = zipFile.getInputStream(entryIn);
            byte [] buf = new byte[1024];
            int len;
            while((len = (is.read(buf))) > 0) {            
                zos.write(buf, 0, len);
            }
        }
        else{
            // I'm not sure what to do here
            // Tried a few things and the file gets corrupt
        }
        zos.closeEntry();
    }
    zos.close();
18
задан Prabhakar 16 July 2012 в 10:12
поделиться