<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> 1 /////////////////////////////////////////////////////////////////////////////////////
2 //
3 // 程序:ZIP.java
4 //
5 // 描述:对文件压缩、解压
6 //
7 // 时间:2006-12-20
8 //
9 // 待修改 :
10 //(1).做成有界面的模式
11 //(2).加入加密功能
12 //(3).异常捕获,增加程序的强壮性。容错能力有待提高
13 //
14 ////////////////////////////////////////////////////////////////////////////////////
15
16 import java.util.*;
17 import java.util.zip.*;
18 import java.io.*;
19 class ZIP
20 {
21 public void zip (String zipFileName,String inputFile)throws Exception
22 {
23 //从String对象, 得到 File对象
24 zip (zipFileName,new File (inputFile));//调用下面的方法
25 }
26 public void zip (String zipFileName,File inputFile)throws Exception
27 {
28 //从String对象得到 FileOutputStream对象
29 //从FileOutputStream对象 再得到ZipOutputStream
30 ZipOutputStream out = new ZipOutputStream (new FileOutputStream (zipFileName));
31 zip (out,inputFile,"");//调用下面的方法
32 System.out.println ("zip done");
33 out.close ();
34 }
35 //最终压缩方法的入口(前面只是起到参数封装)
36 public void zip (ZipOutputStream out,File f,String base)throws Exception
37 {
38 System.out.println ("Zipping "+f.getName ());
39 //如果是目录的情况
40 if (f.isDirectory ())
41 {
42 File[] fl=f.listFiles ();
43 out.putNextEntry (new ZipEntry (base+"/"));
44 base=base.length ()==0?"":base+"/";
45 for (int i=0;i<fl.length ;i++ )
46 {
47 zip (out,fl[i],base+fl[i].getName ());
48 }
49 }
50 //文件的情况
51 else
52 {
53 out.putNextEntry (new ZipEntry (base));
54 FileInputStream in=new FileInputStream (f);
55 int b;
56 while ((b=in.read ()) != -1)
57 out.write (b);
58 in.close ();
59 }
60
61 }
62
63 public void unzip (String zipFileName,String outputDirectory)throws Exception
64 {
65 ZipInputStream in=new ZipInputStream (new FileInputStream (zipFileName));
66 ZipEntry z;
67 while ((z=in.getNextEntry () )!= null)
68 {
69 System.out.println ("unziping "+z.getName ());
70 if (z.isDirectory ())
71 {
72 String name=z.getName ();
73 name=name.substring (0,name.length ()-1);
74 File f=new File (outputDirectory+File.separator+name);
75 f.mkdir ();
76 System.out.println ("mkdir "+outputDirectory+File.separator+name);
77 }
78 else
79 {
80 File f=new File (outputDirectory+File.separator+z.getName ());
81 f.createNewFile ();
82 FileOutputStream out=new FileOutputStream (f);
83 int b;
84 while ((b=in.read ()) != -1)
85 out.write (b);
86 out.close ();
87 }
88 }
89
90 in.close ();
91 }
92
93 public static void main (String[] args)
94 {
95 try
96 {
97 ZIP t=new ZIP ();
98 //通过文件夹选项来获取参数,那样就更好了。
99 t.zip ("c://test2.zip","c://test2");
100 // t.unzip ("c://test1.zip","c://test2");
101 }
102 catch(Exception e)
103 {e.printStackTrace (System.out);}
104 }
105 }
分享到:
相关推荐
**DRACO模型压缩简介** DRACO(Data Rate And Compression Optimizer)是一种高效的数据压缩算法,特别适用于3D几何模型。它由Google开发并开源,旨在为3D图形和虚拟现实应用提供更快的加载速度和更小的存储需求。...
在数字化时代,数据存储和传输的需求日益增长,高效、节省空间的压缩软件成为了解决问题的关键工具。KGB高压缩比软件,正如其名,是一款专为追求极致压缩效果而设计的软件,其在提供优秀性能的同时,也兼顾了易用性...
MP3音乐压缩工具是一种专门针对音频文件,尤其是MP3格式进行优化压缩的软件。这种工具的主要目的是在不显著降低音质的前提下,减小音乐文件的大小,以便于存储、分享和传输。对于内存有限的手机用户来说,MP3压缩...
### 压缩软件原理详解 #### 一、压缩软件的基本概念 计算机处理的数据是以二进制数(即“1”和“0”的序列)的形式存在的。为了节省存储空间和提高传输效率,人们发明了压缩技术,即通过对二进制信息进行特定的...
在IT行业中,模型和压缩技术是两个重要的概念,特别是在3D图形和游戏开发领域。"mdx压缩版吉安娜模型" 提供了一个具体的应用场景,让我们深入探讨一下相关的知识点。 MDX,全称Microsoft Direct3D eXtensible Model...
2. **几何模型**:在现代CAD(计算机辅助设计)系统中,空气压缩机的几何模型通常以3D形式存在,如文件名所示的“空气压缩机模型.STEP”。STEP文件是一种标准格式,用于交换3D几何数据,允许不同软件间的兼容性。...
在压缩软件源代码中,MFC被用来构建用户界面,如对话框、控件等,同时也负责处理消息循环和事件驱动的编程模型。通过MFC,开发者可以快速地构建出具有专业外观的图形用户界面,同时降低了与操作系统交互的复杂性。 ...
《使用draco_gltf压缩工具优化gltf模型——以gltf-pipeline-master为例》 在3D渲染领域,高效的数据传输和快速的场景加载对于提升用户体验至关重要。其中,gltf(GL Transmission Format)是一种轻量级、跨平台的3D...
"易语言WinXar压缩软件源码"是一个使用易语言编写的压缩软件的源代码,我们可以从这个源码中学习到如何使用易语言进行文件压缩处理的相关知识。 首先,易语言WinXar压缩软件源码中的核心部分可能包含了对文件和...
本项目聚焦于一个基于C#实现的图像压缩小软件,它能够处理各种格式的图像,帮助用户减小文件大小,提高存储效率,同时可能在一定程度上保持图像质量。 图像压缩是一个关键的技术领域,它涉及到了数字图像处理、数据...
《YOLOv8模型剪枝压缩技术详解》 在计算机视觉领域,YOLO(You Only Look Once)系列算法因其高效和准确的实时目标检测能力而备受关注。YOLOv8作为YOLO家族的最新成员,进一步提升了检测速度和精度。然而,随着模型...
该模型使用光伏电池来运行驱动空气压缩机的直流电机。 压缩空气然后转动气动马达以运行交流发电机。 由于气动马达错误,系统无法正常运行。 我不确定如何解决此问题以使模型正常工作。 任何建议或改进表示赞赏。 ...
TDM Solutions Skinny3D(3d模型压缩)是一款3D模型瘦身软件,是3D打印的最佳帮手!您的3D模型文件太大不方便传送、携带而伤脑筋吗?只要将您的STL或OBJ文件开启后按一个按钮,即可将文件大小缩减为原有大小的十分之一...
MP3压缩软件是一种高效工具,专门用于减小音频文件的大小,尤其是MP3格式的文件。在不牺牲音质的前提下,这些软件能够将文件压缩到原始大小的三分之一,这对于存储和传输大量的音乐文件非常有帮助。本文将深入探讨...
1. MATLAB在建模与仿真中的应用:文件标题和描述中提到的“基于MATLAB的空调用压缩机的建模与仿真”表明了MATLAB软件在工程建模与仿真领域的应用。MATLAB作为一个强大的数学计算和仿真平台,可以用于复杂系统的建模...
3dsmax模型 制冷压缩机 用于轮机拆装软件构建 教育类
物联网设备通常依赖电池供电,通过监测其软件能耗并采取相应措施(如周期性休眠、数据压缩传输等),可以在不影响功能的前提下显著延长设备工作时间。 ### 四、结论与展望 采用机器学习算法构建的软件能耗感知模型...
【顶级压缩软件PAQ8PX】是压缩领域的佼佼者,以其卓越的压缩率和高效性能赢得了极高的赞誉。在众多的压缩工具中,如7-zip、WinRAR等广泛使用的压缩软件,PAQ8PX脱颖而出,其压缩效果显著优于它们。这款软件采用了...
单片机程序压缩软件及其使用方法是解决单片机存储空间有限问题的关键技术。在单片机开发过程中,由于单片机内部ROM或Flash存储器的容量限制,往往无法容纳大型程序。这时,就需要借助特定的压缩算法和工具来优化和...
在“数据压缩软件源代码”这个压缩包中,可能包含了实现上述一种或多种算法的C++、Java、Python或其他编程语言的源文件。源代码通常包括预处理、主压缩函数、解压缩函数以及相关的辅助函数。通过阅读和分析这些源...