java用GZIP进行简单压缩

 GZIP接口非常简单,所以如果只有单个数据流需要压缩(而不是一系列不同的数据),那么它就可能是最适当选择。下面是对单个文件进行压缩的例子:

//: GZIPcompress.java
// Uses Java 1.1 GZIP compression tocompress
// a file whose name is passed on thecommand
// line.
import  java.io.*;
import  java.util.zip.*;
 
public   class  GZIPcompress {
   public   static   void  main(String[] args) {
     try  {
     BufferedReader in =
        new  BufferedReader(
          new  FileReader(args[0]));
     BufferedOutputStream out =
        new  BufferedOutputStream(
          new  GZIPOutputStream(
             new FileOutputStream( "test.gz" )));
     System.out.println( "Writingfile" );
       int  c;
       while ((c = in.read()) != -1)
       out.write(c);
     in.close();
     out.close();
     System.out.println( "Readingfile" );
      BufferedReaderin2 =
        new  BufferedReader(
          new  InputStreamReader(
            new  GZIPInputStream(
              new  FileInputStream( "test.gz" ))));
     String s;
       while ((s = in2.readLine()) !=  null )
       System.out.println(s);
    }  catch (Exception e) {
     e.printStackTrace();
    }
  }
///:~



压缩类的用法非常直观——只需将输出流封装到一个GZIPOutputStream或者ZipOutputStream内,并将输入流封装到GZIPInputStream或者ZipInputStream内即可。剩余的全部操作就是标准的IO读写。然而,这是一个很典型的例子,我们不得不混合使用新旧IO流:数据的输入使用Reader类,而GZIPOutputStream的构建器只能接收一个OutputStream对象,不能接收Writer对象。

 

来自 http://www.57itsq.com/read.php?tid-1558.html

你可能感兴趣的:(java,GZip)