ThinkJava-压缩

尽管存在许多种压缩算恙,但是Zip和GZIP可能是最常用的.因此我们可以很容易地使用多
种可读写这些格式的工具来操纵我们的压缩数据。
 
1 用GZIP进行简单压缩
GZIP接口非常简单, 因此如果我们只想对单个数据流(而不是一系列互异数据)进行压缩,
那么它可能是比较适合的选择。下面是对单个文件进行压缩的例子:
// {Args: GZIPcompress.java}
package com.java.io;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

public class GZIPcompress {
      public static void main(String[] args) throws IOException {
        if(args.length == 0) {
          System.out.println(
            "Usage: \nGZIPcompress file\n" +
            "\tUses GZIP compression to compress " +
            "the file to test.gz");
          System.exit(1);
        }
        BufferedReader in = new BufferedReader(new FileReader(args[0]));
        BufferedOutputStream out = new BufferedOutputStream(
                                          new GZIPOutputStream(
                                            new FileOutputStream("test.gz")));
        System.out.println("Writing file");
        int c;
        while((c = in.read()) != -1){
            out.write(c);
        }
        in.close();
        out.close();
        System.out.println("Reading file");
        BufferedReader in2 = new BufferedReader(
                                  new InputStreamReader(new GZIPInputStream(
                                    new FileInputStream("test.gz"))));
        String s;
        while((s = in2.readLine()) != null){
            System.out.println(s);
        }
        in2.close();
      }
}
View Code
压缩类的使用非常直观一一直接将输出流封装成GZlPOutputStream或ZipOutputStream,并将
输入流封装成GZIPInputStream或ZipInputStream即可。其他全部操作就是通常的IO读写。这个例
子把面向字符的流和面向字节的流棍合了起来,输入(in ) 用Reader类,而GZIPOutputStream的
构造器只能接受OutputStream对象,不能接受Writer对象。在打开文件时, GZIPInputStream就会
被转换成Reader.
 

2.用Zip进行多文件保存

相关文章:

  • 2022-02-08
  • 2021-11-21
  • 2021-12-31
  • 2021-08-11
  • 2021-08-16
  • 2021-06-14
猜你喜欢
  • 2021-08-22
  • 2022-03-05
  • 2022-12-23
  • 2021-12-31
  • 2021-09-29
  • 2021-08-23
  • 2022-12-23
相关资源
相似解决方案