我试过搜索但找不到任何东西。我想要做的是循环遍历一个列表,在该列表中我从多个列表中的项目组合构造一个字符串。然后我想将这些字符串转储到 gzip 文件中。我只是将它转储到一个普通的 ascii 文本文件中,但我似乎无法让它与 gzipoutputstream 一起工作。所以基本上,
循环 创建字符串 将字符串转储到压缩文件 结束循环
如果可能的话,我想避免转储到纯文本文件然后对其进行 gzip 压缩,因为这些文件每个将近 100 兆。
最佳答案
是的,你可以做到这一点没有问题。您只需要使用编写器将基于字符的字符串转换为基于字节的 gzip 流。
BufferedWriter writer = null;
try {
GZIPOutputStream zip = new GZIPOutputStream(
new FileOutputStream(new File("tmp.zip")));
writer = new BufferedWriter(
new OutputStreamWriter(zip, "UTF-8"));
String[] data = new String[] { "this", "is", "some",
"data", "in", "a", "list" };
for (String line : data) {
writer.append(line);
writer.newLine();
}
} finally {
if (writer != null)
writer.close();
}
此外,请记住 gzip 只是压缩一个流,如果您想要嵌入文件,请参阅此帖子:gzip archive with multiple files inside
关于java - 字符串到 GZIPOutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887828/