我是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的构造函数有一个参数,即压缩级别。
解压缩时我不必提一下吗?
无论如何,请告诉我解压缩的正确方法。
提前致谢。
答案 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();
}
希望这有帮助。