12

検索してみましたが、何も見つかりませんでした。私がやろうとしているのは、複数のリストの項目の組み合わせから文字列を作成しているリストをループしていることです。次に、これらの文字列をgzip圧縮されたファイルにダンプします。プレーンなASCIIテキストファイルにダンプするだけで動作しましたが、gzipoutputstreamで動作するようには見えません。だから基本的に、

ループ作成文字列ダンプ文字列をgzip圧縮されたファイルendloopに

可能であれば、プレーンテキストファイルにダンプしてからgzipするのは避けたいと思います。これらのファイルは、それぞれほぼ100メガバイトになるからです。

4

2 に答える 2

23

はい、問題なくできます。ライターを使用して、文字ベースの文字列からバイト ベースの 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 アーカイブ

于 2012-06-04T21:15:56.933 に答える