广告
返回顶部
首页 > 资讯 > 精选 >如何利用Java实现zip压缩解压缩
  • 609
分享到

如何利用Java实现zip压缩解压缩

2023-06-03 04:06:33 609人浏览 独家记忆
摘要

小编给大家分享一下如何利用Java实现zip压缩解压缩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  zip压缩文件结构:一个zip文件由多个entry组成,每

小编给大家分享一下如何利用Java实现zip压缩解压缩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!


  zip压缩文件结构:一个zip文件由多个entry组成,每个entry有一个唯一的名称,entry的数据项存储压缩数据。

  与zip文件有关的几个Java类

  ·类ZipEntry

  public ZipEntry(String name);

  name为指定的数据项名。

  ·类ZipOutputStream

  ZipOutputStream实现了zip压缩文件的写输出流,支持压缩和非

  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+"";

   else doc=doc+" ";

  }

  doczipsize = 0;

  showTextandInfo();

  }

  private void openFile(){

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

  FileDialog dlg=new
FileDialog(this,"Open",FileDialog.LOA D);

  dlg.show();

  String filename=dlg.getDirectory()+dlg.getFile();

  try{

  ∥创建一个文件实例

  File f=new File(filename);

  if(!f.exists()) return; ∥文件不存在,则返回

  ∥用文件输入流构建ZIP压缩输入流

  ZipInputStream zipis=new ZipInputStream(new
FileInputStream(f));

  zipis.getNextEntry();

  ∥将输入流定位在当前entry数据项位置

  DataInputStream dis=new DataInputStream(zipis);

  ∥用ZIP输入流构建DataInputStream

  doc=dis.readUTF();∥读取文件内容

  dis.close();∥关闭文件

  doczipsize = f.length();∥获取ZIP文件长度

  showTextandInfo();∥显示数据

  }

  catch(IOException ioe){

  System.out.println(ioe);

  }

  }

  private void saveFile(){

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

  FileDialog dlg=new
FileDialog(this,"Save",FileDialog.SAVE);

  dlg.show();

  String filename=dlg.getDirectory()+dlg.getFile();

  try{

  ∥创建一个文件实例

  File f=new File(filename);

  if(!f.exists()) return; ∥文件不存在,则返回

  ∥用文件输出流构建ZIP压缩输出流

  ZipOutputStream zipos=new ZipOutputStream(new
FileOutputStream(f));

  zipos.setMethod(ZipOutputStream.DEFLATED); ∥设置压缩方


  zipos.putNextEntry(new ZipEntry("zip"));

  ∥生成一个ZIP entry,写入文件输出流中,并将输出流定位于
entry起始处。

  DataOutputStream os=new DataOutputStream(zipos);

  ∥用ZIP输出流构建DataOutputStream;

  os.writeUTF(doc);∥将随机生成的数据写入文件中

  os.close();∥关闭数据流

  doczipsize = f.length();

  ∥获取压缩文件的长度

  showTextandInfo();∥显示数据

  }

  catch(IOException ioe){

  System.out.println(ioe);

  }

  }

  private void showTextandInfo(){

  ∥显示数据文件和压缩信息

  
textarea.replaceRange(doc,0,textarea.getText().length());

  infotip.setText("uncompressed size:
"+doc.length()+"compressed size: "+dc zipsize);

  }

  public void actionPerfORMed(ActionEvent e){

  String arg = e.getActionCommand();

  if ("New".equals(arg)) randomData();

  else if ("Open".equals(arg)) openFile();

  else if ("Save".equals(arg)) saveFile();

  else if ("Exit".equals(arg)){

   dispose();∥关闭窗口

   System.exit(0);∥关闭程序

  }

  else {

   System.out.println("no this command!");

  }

  }

  }

以上是“如何利用Java实现zip压缩解压缩”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 如何利用Java实现zip压缩解压缩

本文链接: https://www.lsjlt.com/news/232895.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用Java实现zip压缩解压缩
    小编给大家分享一下如何利用Java实现zip压缩解压缩,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  zip压缩文件结构:一个zip文件由多个entry组成,每...
    99+
    2023-06-03
  • 利用Java实现zip压缩/解压缩 (转)
    利用Java实现zip压缩/解压缩 (转)[@more@]利用Java实现zip压缩/解压缩---摘自互联网  由于网络带宽有限,所以数据文件的压缩有利于数据在Inte.NET上的快速传输,同时也节 省服务器的外存空间。   Java 1....
    99+
    2023-06-03
  • 如何在Java中利用zip实现压缩和解压缩
    这篇文章主要介绍了如何在Java中利用zip实现压缩和解压缩,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和...
    99+
    2023-06-06
  • Java如何实现文件压缩为zip和解压zip压缩包
    本篇内容介绍了“Java如何实现文件压缩为zip和解压zip压缩包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!压缩成.zip代码如下:pu...
    99+
    2023-07-02
  • Java实现文件压缩为zip和解压zip压缩包
    目录压缩成.zip解压.zip压缩成.zip 代码如下: public static void toZip(String srcDir, OutputStream out) th...
    99+
    2022-11-13
  • Java如何实现ZIP压缩与解压
    Java如何实现ZIP压缩与解压,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。程序实现了ZIP压缩。共分为2部分 : 压缩(compression)与解压(de...
    99+
    2023-06-17
  • Java压缩与解压缩ZIP文件
    文章目录 前言Java解压缩文件压缩和解压缩ZIP文件检验应用总结 前言 在现代计算机上,数据传输和存储越来越依赖于文件压缩技术。当我们需要发送大量数据时,压缩文件可以大大减少传输时间...
    99+
    2023-09-11
    java zip 压缩文件 解压缩文件 ZipOutputStream
  • Node.js中zip压缩和zip解压缩实例用法
    本篇内容主要讲解“Node.js中zip压缩和zip解压缩实例用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中zip压缩和zip解压缩实例用法...
    99+
    2022-10-19
  • java工具类 - 实现文件压缩zip及解压缩
    对hutool工具类进行的封装 依赖 cn.hutool hutool-all 5.8.15 ...
    99+
    2023-10-28
    java
  • 怎么在java中利用压缩流实现压缩与解压
    本篇文章给大家分享的是有关怎么在java中利用压缩流实现压缩与解压,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程...
    99+
    2023-06-14
  • 里有Java如何实现压缩与解压zip文件
    里有Java如何实现压缩与解压zip文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java解压缩zip - 多个文件(包括文件夹),对多个文件和文件夹进行压...
    99+
    2023-05-31
    java ava zip
  • Android实现zip文件压缩及解压缩的方法
    本文实例讲述了Android实现zip文件压缩及解压缩的方法。分享给大家供大家参考。具体如下: DirTraversal.java如下: package com.once; ...
    99+
    2022-06-06
    压缩 方法 zip 解压 Android
  • Win10如何使用自带压缩、解压zip压缩文件功能
      Windows系统自带不少工具,到了Win10,好用的功能依然保留,比如压缩/解压zip压缩文件的功能。压缩文件能为系统节省空间,这一功能必不可少。Win10如何使用压缩/解压zip压缩文件功能?   Win10压缩...
    99+
    2023-06-10
    Win10 压缩 功能 自带 压缩文件
  • python利用gzip压缩解压缩Str
    When working with a data stream instead of a file, use the GzipFileclass directly to compress or uncompress it. T...
    99+
    2023-01-31
    解压缩 python gzip
  • VB.NET如何实现压缩和解压缩
    这篇文章主要为大家展示了“VB.NET如何实现压缩和解压缩”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何实现压缩和解压缩”这篇文章吧。VB.NET压缩和解压缩实现代码:Publi...
    99+
    2023-06-17
  • Java的zip文件压缩与解压:ZipInputStream,ZipOutputStream
    目录 文件压缩 ZipOutputStream文件解压:ZipInputStream 文件压缩 ZipOutputStream    用ZipOutputStream来压缩一个文件夹时,要搭配ZipEntry来使用。ZipEnt...
    99+
    2023-08-16
    java ZipInputStream ZipOutputStream zip
  • 利用JAVA API函数实现数据的压缩与解压缩(转)
    本文通过对数据压缩算法的简要介绍,然后以详细的示例演示了利用java.util.zip包实现数据的压缩与解压,并扩展到在网络传输方面如何应用java.util.zip包现数据压缩与解压综述许多信息资料都或多或少的包含一些多余的数据。通常会导...
    99+
    2023-06-03
  • Linux中zip压缩和unzip解压缩命令的应用
    本篇内容主要讲解“Linux中zip压缩和unzip解压缩命令的应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux中zip压缩和unzip解压缩命令的应用”吧!把/home目录下面的m...
    99+
    2023-06-13
  • vbs实现zip压缩与unzip解压缩函数的代码分享
    本篇内容主要讲解“vbs实现zip压缩与unzip解压缩函数的代码分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vbs实现zip压缩与unzip解压缩函数的代码分享”吧!压缩代码: 复制代码...
    99+
    2023-06-08
  • C# 使用原生 System.IO.Compression 实现 zip 的压缩与解压
    zip 是一个非常常见的压缩包格式,本文主要用于说明如何使用代码 文件或文件夹压缩为 zip压缩包及其解压操作,我们采用的是 微软官方的实现,所以也不需要安装第三方的组件包。 使用的...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作