mio caso d'uso mi richiede di aprire un file txt, dicono abc.txt che si trova all'interno di un archivio zip che contiene coppie chiave-valore nella formaModifica di un file di testo in un archivio ZIP in Java
key1 = valore1
chiave2 = valore2
.. e così via in cui ogni coppia di valori-chiave è in una nuova linea. Devo cambiare un valore corrispondente a un certo tasto e rimettere il file di testo in una nuova copia dell'archivio. Come faccio a farlo in java?
Il mio tentativo finora:
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();
Quindi, a parte scovare il flusso di output, cosa non funziona? – MadProgrammer
Non ti ho preso. Non ho svuotato esplicitamente il flusso di output. – Prabhakar