字符串到GZIPOutputStream

dab*_*dha 12 java compression gzip gzipoutputstream

我试过搜索,找不到任何东西.我正在尝试做的是我循环遍历一个列表,我正在从多个列表中的项目组合构造一个字符串.然后我想将这些字符串转储到gzip压缩文件.我得到它只是将它转储到一个简单的ascii文本文件,但我似乎无法让它与gzipoutputstream一起工作.基本上,

循环创建字符串转储字符串到gzipped文件endloop

如果可能的话,我想避免转储到纯文本文件然后gzipping它,因为这些文件将几乎100兆.

Mal*_*ith 22

是的,你可以做到这一点没问题.您只需要使用编写器将基于字符的字符串转换为基于字节的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();
    }
Run Code Online (Sandbox Code Playgroud)

另外,记住gzip只是压缩一个流,如果你想要嵌入文件,请看这篇文章:gzip archive里面有多个文件