我有几个要写入zip存档的字符串(Json对象)。内容应具有UTF-8字符集。我可以先在硬盘上创建txt文件,然后将它们压缩在一起。但是,是否也可以直接使用txt文件和utf-8字符集创建zip存档?
此刻,我正在将字符串的字节直接写入存档。并获取系统的字符集。
String str = "...";
ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream("dest\\zipFile.zip"));
zipOutputStream.putNextEntry(new ZipEntry("entryName"));
zipOutputStream.write(str.getBytes());
zipOutputStream.close();
答案 0 :(得分:1)
您的所作所为对我来说是正确的。
如果要纠正多个文件,请调用.closeEntry()
,然后可以使用putNextEntry
和write
添加新文件,并使用文件名作为条目名。
对于字符编码,您可以使用如下代码:
ZipOutputStream zipStream = new ZipOutputStream(new FileOutputStream(outputFile));
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(zipStream, Charset.forName("YOUR_WANTED_CHARSET"))
);