下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

java中的GZIP该如何压缩文件

作者:课课家教育     来源: http://www.kokojia.com点击数:1234发布时间: 2016-02-22 14:17:15

标签: java压缩类javaIO标准java开发

大神带你学编程,欢迎选课

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

java中的GZIP该如何压缩文件_java的压缩类_java的IO标准_课课家

  //: GZIPcompress.java

  // Uses Java 1.1 GZIP compression to compress

  // a file whose name is passed on the command

  // 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("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);

  } catch(Exception e) {

  e.printStackTrace();

  }

  }

  } ///:~

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

赞(29)
踩(4)
分享到:
华为认证网络工程师 HCIE直播课视频教程