使用内容为utf-8字符集的txt文件创建zip存档

时间:2019-07-12 14:44:40

标签: java utf-8 stream zip

我有几个要写入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();

1 个答案:

答案 0 :(得分:1)

您的所作所为对我来说是正确的。

如果要纠正多个文件,请调用.closeEntry(),然后可以使用putNextEntrywrite添加新文件,并使用文件名作为条目名。

对于字符编码,您可以使用如下代码:

    ZipOutputStream zipStream = new ZipOutputStream(new FileOutputStream(outputFile));
    BufferedWriter writer = new BufferedWriter(
        new OutputStreamWriter(zipStream, Charset.forName("YOUR_WANTED_CHARSET"))
    );