利用Java实现zip压缩/解压缩

2016-01-29 12:02 7 1 收藏

利用Java实现zip压缩/解压缩,利用Java实现zip压缩/解压缩

【 tulaoshi.com - Java 】

  由于网络带宽有限,所以数据文件的压缩有利于数据在Internet上的快速传输,同时也节

省服务器的外存空间。

  Java 1.1实现了I/O数据流与网络数据流的单一接口,因此数据的压缩、网络传输和解

压缩的实现比较容易,下面介绍利用ZipEntry、ZipInputStream和ZipOutputStream三个Java

类实现zip数据压缩方式的编程方法。

  zip压缩文件结构:一个zip文件由多个entry组成,每个entry有一个唯一的名称,entry的

数据项存储压缩数据。

  与zip文件有关的几个Java类

  ·类ZipEntry

  public ZipEntry(String name);

  name为指定的数据项名。

  ·类ZipOutputStream

  ZipOutputStream实现了zip压缩文件的写输出流,支持压缩和非压缩entry。下面是它的

几个函数:

  public ZipOutputStream(OutputStream out);

  ∥利用输出流out构造一个ZIP输出流。

  public void setMethod(int method);

  ∥设置entry压缩方法,缺省值为DEFLATED。

  public void putNextEntry(ZipEntry newe);

  ∥如果当前的entry存在且处于激活状态时,关闭它,在zip文件中写入新的entry-newe

并将数据流定位于entry数据项的起始位置,压缩方法为setMethod指定的方法。

  ·类ZipInputStream

  ZipInputStream实现了zip压缩文件的读输入流,支持压缩和非压缩entry。下面是它的

几个函数:

  public ZipInputStream(InputStream in);

  ∥利用输入流in构造一个ZIP输出流。

  public ZipEntry getNextEntry();

  ∥返回ZIP文件中的下一个entry,并将输出流定位在此entry数据项的起始位置。

  public void closeEntry();

  ∥关闭当前的zip entry,并将数据流定位于下一个entry的起始位置。

  程序代码及其注释

  下列的程序实现了数据文件zip方式的压缩和解压缩方法。randomData()函数随机生成

50个double数据,并放在doc字符串变量中;openFile()函数读取ZIP压缩文件;saveFile()函数

将随机生成的数据存到ZIP格式的压缩文件中。

  import java.util.zip.*;

  import java.awt.event.*;

  import java.awt.*;

  import java.lang.Math;

  import java.io.*;

  public class TestZip extends Frame implements ActionListener {

  TextArea textarea; ∥显示数据文件的多行文本显示域

  TextField infotip; ∥显示数据文件未压缩大小及压缩大小单行文本显示域

  String doc; ∥存储随机生成的数据

  long doczipsize = 0;∥压缩数据文件的大小

  public TestZip(){

  ∥生成菜单

  MenuBar menubar = new MenuBar();

  setMenuBar(menubar);

  Menu file = new Menu("File",true);

  menubar.add(file);

  MenuItem neww= new MenuItem("New");

  neww.addActionListener(this);

  file.add(neww);

  MenuItem open=new MenuItem("Open");

  open.addActionListener(this);

  file.add(open);

  MenuItem save=new MenuItem("Save");

  save.addActionListener(this);

  file.add(save);

  MenuItem exit=new MenuItem("Exit");

  exit.addActionListener(this);

  file.add(exit);

  ∥随机生成的数据文件的多行文本显示域

  add("Center",textarea = new TextArea());

  ∥提示文本原始大小、压缩大小的单行文本显示域

  add("South",infotip = new TextField());

  }

  public static void main(String args[]){

  TestZip ok=new TestZip();

  ok.setTitle("zip sample");

  ok.setSize(600,300);

  ok.show();

  }

  private void randomData(){

  ∥随机生成50个double数据,并放在doc字符串变量中。

  doc="";

  for(int i=1;i<51;i++){

   double rdm=Math.random()*10;

   doc=doc+new Double(rdm).toString();

   if(i%5 == 0) doc=doc+"n";

   else doc=doc+" ";

  }

  doczipsize = 0;

  showTextandInfo();

  }

  private void openFile(){

  ∥打开zip文件,将文件内容读入doc字符串变量中。

  FileDial

来源:https://www.tulaoshi.com/n/20160129/1484344.html

延伸阅读
标签: 密码 电脑
下载文件 随便打开一个浏览器,在输入框中输入要下载文件的名称即可。 右击属性 首先,我们选择rar压缩文件点属性,如图。 查看密码 点属性-选择注释-看密码就在这,一般网站下载的软件解压密码都在这,如图。 点击确定 把这密码复制到解压密码框里,点确认即可,如图。 在网站软件下寻找 如果前...
压缩饼干是很多人都喜爱吃的食物,尤其是这样的食物吃起来可口,而且含有的营养元素也是比较丰富,那对这样食物选择上,也是要注意不能随意的乱吃,它一般都是出门在外的时候吃最佳,使得能够很好的补充人体体力,过多的吃,也是会造成人体负担,那压缩饼干一次吃多少呢? 对压缩饼干一次吃多少呢,也是很多人不太清楚的,因此对它选...
如何解决rar文件解压缩失败 附件经常会是一系列的压缩文件,下载是默认文件名是一个随机数字。 因而下载完会出现压缩文件解压缩失败 解决方法:下载时重命名为带一定顺序的文件名,如文件1,文件2,文件3等 如何解决单个文件解压失败? 论坛中的许多资料都是使用RAR压缩的,上传到下载,在解压过程中可能会出现错误。...
标签: ASP rar
有没有想过在线解压缩压缩文件呢?呵呵,有时上传一个压缩包以后,利用Asp程序解压缩的确很方便,尤其是经常更新网站的站长们,由于文本文件压缩比率大,所以采用压缩以后上传再解压缩,这样比直接上传节省了大量的宝贵时间。准备好了吗?那就跟上吧。 要想实现这种功能,首先要得到Rar程序的解压缩核心文件支持(可以下载WinRar软件,再把其...
好压软件解压缩神乎其技的力量 软件功能包括强力压缩、分卷、加密、自解压模块、智能图片转换、智能媒体文件合并等。完美支持鼠标拖放及外壳扩展。使用简便,配置选项不多,仅在资源管理 器中就可完成你想做的所有工作;具有估计压缩功能,可以在压缩文件之前得到用ZIP、7Z两种压缩工具各三种压缩方式下的大概压缩率;还有强大的历史记录 功能...

经验教程

969

收藏

34
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部