如何在Java中使用Inflater进行解压缩?

时间:2014-03-03 03:48:19

标签: java compression inflate deflate

我是Java的新手。

我有一些代码要压缩如下:

public void compress(OutputStream out) throws IOException
{
    Deflater deflater = new Deflater(1);
    DeflaterOutputStream zOut = new DeflaterOutputStream(out, deflater, 1024);
    DataOutputStream stream = new DataOutputStream(zOut);

    stream.writeShort(200);
    stream.write("test".getBytes("utf-8"));

    zOut.close();
    deflater.end();
}

我正在使用以下功能:

    compress c = new compress();
    FileOutputStream fis = new FileOutputStream("D:\\Temp\\file.bin");
    OutputStream out = fis;
    c.compress(out);
    fis.close(); 

现在,我需要解压缩我的file.bin文件。

我查了几个样本,但没有一个向我展示压缩级别。

Deflater的构造函数有一个参数,即压缩级别。

解压缩时我不必提一下吗?

无论如何,请告诉我解压缩的正确方法。

提前致谢。

1 个答案:

答案 0 :(得分:0)

这应该让你知道如何使用InflaterInputStream:

public static void decompress(File compressed, File raw)
        throws IOException
    {
        InputStream in =
            new InflaterInputStream(new FileInputStream(compressed));
        OutputStream out = new FileOutputStream(raw);
        byte[] buffer = new byte[1000];
        int len;
        while((len = in.read(buffer)) > 0) {
            out.write(buffer, 0, len);
        }
        in.close();
        out.close();
    }

希望这有帮助。