在 Java 中修改 ZIP 存档中的文本文件
2022-09-01 20:20:17
我的用例要求我打开一个txt文件,比如abc.txt它位于zip存档中,其中包含格式中的键值对
键 1=值 1
键 2= 值 2
..等等,每个键值对都在新行中。我必须更改一个对应于某个键的值,并将文本文件放回存档的新副本中。如何在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();