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

Java压缩与解压缩ZIP文件 小而美的使用JDK自带的ZIP工具包生成与解压缩ZIP文件 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 由于网络带宽有限,所以数据文件的压缩有利于数据在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字符串变量中。   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!");   }   }   }
基于VH6501的Busoff测试 摘要: 本文介绍使用VH6501和CANoe工具测试ECU的Busoff Recovery机制。通过干扰报文触发Busoff状态,验证快恢复(连续32次,间隔100ms)和慢恢复(间隔1000ms)的时序及次数是否符合要求。测试步骤包括硬件配置、干扰参数设置及Trace窗口错误帧分析,最终通过错误帧间隔判定恢复机制的正确性。 阅读详情

相关推荐

【论文阅读笔记】One Shot 3D Photography

论文主页:https://facebookresearch.github.io/one_shot_3d_photography/ 代码地址:https://github.com/facebookresearch/one_shot_3d_photography   该3D照片方向,由于刚入门,所以会倾向于翻译文章。每个操作上的选择,及为什么不进行另外操作的原因都如数放上。 论文小结   本作的工作是从单张RGB图片生成一个移动视角的3D照片。   其管道大致如下: 由RGB图像通过单目深度估计网络估计深度图

时光机 °的博客 1840

利用Java zip进行对文件的压缩和解压

利用Java JDK自带 进行对文件的压缩和解压 实现一个文件的zip压缩,过程可以简单地表示为: ZipEntry:表示 ZIP 文件条目 构造方法: public ZipEntry(String name) 可以用文件的相对路径来构造ZipEntry对象 ZipOutputStream: ZIP 文件格式写入文件实现输出流过滤器用于文件的解压 public void write(byte[] b,int off,int len) throws IOException 将字节数组写入当前 ZIP

qq_43842093的博客 1851

反无人机作战体系全解析:从低慢小探测到分层拦截

随着小型无人机在军事和民用领域的广泛使用,低慢小目标探测与拦截成为低空安全的核心挑战。传统防空体系面对成本低廉、飞行高度低、雷达特征小的无人机集群时,暴露出探测难、识别难、处置成本失衡等问题。为应对威胁,反无人机体系采用分层闭环设计,融合雷达、光电、声学与无线电侦测实现多源感知,通过电子战软杀伤与导弹、高炮、激光等硬杀伤手段协同配合,并借助自动化指控系统缩短“传感器到射手”的响应时延。该体系既可支撑战场要地防护,也能为民用低空安防提供参考。围绕分层反制逻辑,梳理探测、软硬杀伤、指控布防及实战短板,提供理解反

weixin_42533120的博客 335

zipentry java_java中的ZipEntry是什么意思?

展开全部ZipEntry类是java.util.zip包下的一个类,ZipEntry类用于表示 ZIP 文件条32313133353236313431303231363533e58685e5aeb931333337396230目。利用这个类压缩和解压zip文件具体压缩的例子如下:importjava.io.File;importjava.io.FileInputStream;import...

weixin_34239861的博客 2512

mot_challenge官方评估代码

mot_challenge官方代码使用介绍 评估mot17验证集:每个视频序列的后一半帧作为验证集 下载源码:git clone https://hub.fastgit.org/JonathonLuiten/TrackEval.git 官网上下载data样例,放在TrackEval/下,结构如下: data |-- gt | |-- bdd100k | |-- davis | |-- kitti | |-- mot_challenge | | |-- MOT15-train |

qq_37866436的博客 4896

逆向攻防世界CTF系列40-ReverseMe-120

注意sub_401000main中只传了两个参数,但是跟进后发现四个(可能是隐式传递,放在寄存器里传递了),调试发现a4是输入长度,与最终的you_know_how_to_remove_junk_code比较的是v12(但是并没有被传入),开始怀疑是不是隐式传递了。_mm_xor_si128用于计算128位(16字节)的按位异或,然后通过v14控制循环结束的条件,可以看到v14增长的步长为16,而且通过上面得到的flag值解码得到的字符串为32个字节大小,正好是16的整数倍。

LH1013886337的博客 1411

ZipEntry 类,zip的压缩与解压

ZipEntry 类是java.util.zip包下的一个类, ZipEntry 类用于表示 ZIP 文件条目。 利用这个类压缩和解压zip文件 具体压缩的例子如下: import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutput...

weixin_45109925的博客 2万+

UE5、CesiumForUnreal实现加载GeoJson绘制多面(MultiPolygon)功能(支持点选高亮)

UE5、CesiumForUnreal实现加载GeoJson实现多面(MultiPolygon)的绘制功能,并且支持点选高亮和属性查询。

专注GIS开发 4629

JAVA实现压缩解压文件

JAVA实现压缩解压文件

xingchenyv的博客 1万+

深度学习实战35-图卷积神经网络GCN模型的搭建与应用

大家好,我是微学AI,今天给大家介绍一下深度学习实战35-图卷积神经网络GCN模型的搭建与应用,GCN是一种用于处理图结构数据的深度学习模型,它可以捕捉节点之间的拓扑关系和局部特征,并进行图级别的预测和分类任务。下面将介绍如何搭建并应用GCN模型。

微学AI的博客 2226

MATLAB基础应用精讲-【数模应用】游程检验(附MATLAB、R语言和python代码实现)

游程检验是一种非参数性统计假设的检验方法,它是游程总数检验和最大游程检验的总称,用于两个独立样本的比较和观测结果随机性的检验测试。​游程检验亦称“连贯检验”,是根据样本标志表现排列所形成的游程的多少进行判断的检验方法。[2]例1:设某样本n=12人的标志表现为男、女,有以下三种排列。(i) 男\男,女\女\女,男,女\女,男\男\男\男;(ii) 男\男\男\男\男\男\男,女\女\女\女\女;(iii) 男,女,男,女,男,女,男,女,男,女,男\男;连续出现男或女的区段称为游程。

qq_36130719的博客 609

三个利用Java实现zip压缩/解压缩方法

 由于网络带宽有限,所以数据文件的压缩有利于数据在Internet上的快速传输,同时也节省服务器的外存空间。 Java 1.1实现了I/O数据流与网络数据流的单一接口,因此数据的压缩、网络传输和解 --> 压缩的实现比较容易,下面介绍利用ZipEntry、ZipInputStream和ZipOutpu

zaowei21的专栏 2139

地平线旭日X3 安装xfce桌面+VNC查看USB摄像头

VNC是Virtual Network Computing的缩写,它是一种使用RFB(Remote Frame Buffer)协议的用于控制远程电脑的图形桌面分享系统。xfce桌面相比于GNOME桌面更加轻量,占用的资源更少,在没有GPU的设备上也可以运行(旭日的Desktop版本从外观上好像就是xfce桌面,具体没有尝试)。可以使用专用的VNC客户端连接到开发板,例如vnc viewer。板子默认带有openssh-server,因此,WiFi热点连接成功后,就可以使用ssh登录开发板了。

bingdund的博客 510

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

程序代码及其注释下列的程序实现了数据文件zip方式的压缩和解压缩方法。randomData()函数随机生成50个double数据,并放在doc字符串变量中;openFile()函数读取ZIP压缩文件;saveFile()函数将随机生成的数据存到ZIP格式的压缩文件中。import java.util.zip.*;import java.awt.event.*;import java.awt.*;i...

weixin_42500454的博客 216

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

该楼层疑似违规已被系统折叠隐藏此楼查看此楼ok.setTitle("zipsample");ok.setSize(600,300);ok.show();}privatevoidrandomData(){‖随机生成50个double数据,并放在doc字符串变量中。doc="";for(inti=1;i<51;i++){doublerdm=Math.random()*10;doc=d...

weixin_42389030的博客 216

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java zip压缩下载_利用Java实现zip压缩/解压缩

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 MenuIt...

weixin_39847887的博客 73

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

上一篇: 2001.11.01 站长日记
下一篇: Java何以保网络安全
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值