trường hợp sử dụng của tôi yêu cầu tôi để mở một file txt, nói abc.txt mà là bên trong một kho lưu trữ zip chứa cặp khóa-giá trị ở dạngSửa đổi một tập tin văn bản trong một kho lưu trữ ZIP trong Java
key1 = value1
khóa2 = value2
.. và vân vân nơi mà mỗi cặp khóa-giá trị trong một dòng mới. Tôi phải thay đổi một giá trị tương ứng với một khóa nhất định và đặt tệp văn bản trở lại trong bản sao lưu trữ mới. Làm thế nào để làm điều này trong java?
nỗ lực của tôi cho đến nay:
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();
Vì vậy, sau đó xả luồng đầu ra, những gì không hoạt động? – MadProgrammer
Tôi không nhận được bạn. Tôi chưa xóa luồng đầu ra một cách rõ ràng. – Prabhakar