Mi caso de uso me obliga a abrir un archivo txt, abc.txt decir que está dentro de un archivo zip que contiene pares de valores clave en la formaModificación de un archivo de texto en un archivo ZIP en Java
key1 = valor1
key2 = valor2
.. y así sucesivamente, donde cada par clave-valor está en una nueva línea. Tengo que cambiar un valor correspondiente a una determinada clave y volver a colocar el archivo de texto en una nueva copia del archivo. ¿Cómo hago esto en Java?
Mi intento hasta el momento:
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();
Entonces, ¿otro que enjuagar el flujo de salida? ¿Qué no funciona? – MadProgrammer
No te entendí. No he purgado explícitamente el flujo de salida. – Prabhakar