【发布时间】:2019-06-26 06:51:26
【问题描述】:
我在该 zip 文件中有一个名为 test.zip 的 zip 文件,我有 2 个文件 file1.txt 和 file2.txt。 我想更新 file1.txt 文件并使用核心 java 概念在 zip 文件中添加一个文件 file3.txt 而不提取 zip 文件。 谁能建议我应该对这个用例使用哪种方法。 提前谢谢你。
【问题讨论】:
我在该 zip 文件中有一个名为 test.zip 的 zip 文件,我有 2 个文件 file1.txt 和 file2.txt。 我想更新 file1.txt 文件并使用核心 java 概念在 zip 文件中添加一个文件 file3.txt 而不提取 zip 文件。 谁能建议我应该对这个用例使用哪种方法。 提前谢谢你。
【问题讨论】:
获取关于你要执行什么操作的文件,
try (FileInputStream fis = new FileInputStream( String fileName = "C:/Users/Administrator/Desktop/log.zip";);
BufferedInputStream bis = new BufferedInputStream(fis);
ZipInputStream zis = new ZipInputStream(bis)) {
ZipEntry ze;
while ((ze = zis.getNextEntry()) != null) {
System.out.format("File: %s Size: %d Last Modified %s %n",
ze.getName(), ze.getSize(),
LocalDate.ofEpochDay(ze.getTime() / MILLS_IN_DAY));
}
}
然后得到如下bufferreader对象,
ZipEntry entry = entries.nextElement();
InputStream stream = zipFile.getInputStream(entry);
BufferedReader br = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
一旦你有了它,你可以修改内容为,
while (line = br.readLine() != null)
{
if (line.contains("java"))
line = line.replace("java", " ");
lines.add(line);
}
FileWriter fw = new FileWriter(f1);
BufferedWriter out = new BufferedWriter(fw);
out.write(lines.toString());
【讨论】: