import java.io.*; import java.util.zip.*; public class GZIProc { public static void main(String[] args) {
byte[] b1 ,b2 = null; try {
BufferedInputStream in = new BufferedInputStream( new FileInputStream(args[0])); ByteArrayOutputStream bout = new ByteArrayOutputStream(); GZIPOutputStream out = new GZIPOutputStream(bout); ObjectOutputStream oout = new ObjectOutputStream(out); // 读取源文件 b1 = new byte[in.available()]; in.read(b1,0,b1.length); System.out.println("压缩前:\n" + new String(b1));
/**
*@author Yzl 2005-11-24
* 描述:简单实现数据在内存中压缩与解压.
*/
import java.io.*;
import java.util.zip.*;
public class GZIProc {
public static void main(String[] args) {
byte[] b1 ,b2 = null;
try {
BufferedInputStream in = new BufferedInputStream( new FileInputStream(args[0]));
ByteArrayOutputStream bout = new ByteArrayOutputStream();
GZIPOutputStream out = new GZIPOutputStream(bout);
ObjectOutputStream oout = new ObjectOutputStream(out);
// 读取源文件
b1 = new byte[in.available()];
in.read(b1,0,b1.length);
System.out.println("压缩前:\n" + new String(b1));
// 压缩
//out.write(b1,0, b1.length);
oout.writeObject(new String(b1));
oout.flush();
oout.close();
// 读取压缩字节流
b2 = bout.toByteArray();
System.out.println("压缩后:\n" + new String(b2));
// 关闭数据流
in.close();
// 解压
ObjectInputStream in2 = new ObjectInputStream(new GZIPInputStream(new ByteArrayInputStream(b2)));
byte[] b3 = ((String)in2.readObject()).getBytes();
in2.close();
// 输出
System.out.println( new String(b3));
} catch(Exception e) {
e.printStackTrace();
}
}
}