怎么在java中利用压缩流实现压缩与解压

  介绍

本篇文章给大家分享的是有关怎么在java中利用压缩流实现压缩与解压,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

java是什么

java是一门面向对象编程语言,可以编写桌面应用程序,网络应用程序,分布式系统和嵌入式系统应用程序。

<强> 1。概念

压缩流可以将输入的数据变为压缩格式后进行输出,或者读取压缩格式的数据后,解压为正常数据。

<强> 2。压缩步骤

(1)生成一个压缩类对象,这个对象来自于一个“.zip"的文件,通过它产生一ZipOutputStream对象,

(2)生成压缩对象入口,因为需要被压缩的文件不止一个,需要用ZipEntry方法生成压缩入口文件后才能放进压缩文件;

(3)用putNextEntry将压缩入口放入压缩文件;

(4)将文件内容写入了out.write(),将压缩入口和文件流关闭。

<强> 3。目录压缩

 import  . io . *;
  import  java.util.zip.ZipEntry;
  import  java.util.zip.ZipOutputStream;
  ,
  public  class  ZipStreamExam2  {
  ,,,public  static  void  main (String [], args), {
  ,,,,,,,try  {
  ,,,,,,,,,,,File  File =, new 文件(“d: \ \ zipmultidir");
  ,,,,,,,,,,,ZipOutputStream  zos =, new  ZipOutputStream (new  BufferedOutputStream (new  FileOutputStream (“d: \ \ zipmultidir.zip")));
  ,,,,,,,,,,,zipDir(环球,文件,文件);
  ,,,,,,,,,,,zos.flush ();
  ,,,,,,,,,,,zos.close ();
  ,,,,,,,},catch  (FileNotFoundException  e), {
  ,,,,,,,,,,,e.printStackTrace ();
  ,,,,,,,},catch  (IOException  e), {
  ,,,,,,,,,,,e.printStackTrace ();
  ,,,,,,,}
  ,,,}
  ,
  ,,,//压缩一个目录至邮政文件
  ,,,private  static  void  zipDir (File  dir, ZipOutputStream 环球,,File  rootDir), throws  IOException  {
  ,,,,,,,if  (! dir.isDirectory ())
  ,,,,,,,,,,,返回;
  ,
  ,,,,,,,文件[],files =, dir.listFiles ();
  ,,,,,,,for  (int 小姐:=,0;,小姐:& lt;, files.length;,我+ +),{
  ,,,,,,,,,,,if (文件[我].isFile ()), {
  ,,,,,,,,,,,,,,,System.out.println(文件[我].getAbsolutePath ());
  ,,,,,,,,,,,,,,,String 你=,文件[我].getAbsolutePath ();
  ,,,,,,,,,,,,,,,String  root =, rootDir.getAbsolutePath ();
  ,,,,,,,,,,,,,,,String  name =, now.substring (root.length (), +, 1);
  ,,,,,,,,,,,,,,,System.out.println(名称);
  ,
  ,,,,,,,,,,,,,,,FileInputStream  fis =, new  FileInputStream(文件[我]);
  ,
  ,,,,,,,,,,,,,,,byte  buf [],=, new 字节[1024];
  ,,,,,,,,,,,,,,,int  len =, 0;
  ,,,,,,,,,,,,,,,ZipEntry  ze =, new  ZipEntry(名称);
  ,,,,,,,,,,,,,,,zos.putNextEntry(泽);
  ,,,,,,,,,,,,,,,while  ((=len  fis.read (buf)), !=, 1), {
  ,,,,,,,,,,,,,,,,,,,zos.write (buf, 0, len);
  ,,,,,,,,,,,,,,,}
  ,,,,,,,,,,,,,,,fis.close ();
  ,,,,,,,,,,,},else  if (文件[我].isDirectory ()), {
  ,,,,,,,,,,,,,,,zipDir(文件[我],环球,,rootDir);
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

怎么在java中利用压缩流实现压缩与解压