IO操作之使用zip包压缩和解压缩文件
转自:http://www.cdtarena.com/java.html
Java API中的import java.util.zip.*;包下包含了Java对于压缩文件的所有相关操作。
我们可以使用该包中的方法,结合IO中的相关知识,进行文件的压缩和解压缩相关操作。
ZipFile
- File file = new File("F:/zippath.zip");
- ZipFile zipFile = new ZipFile(file);
- System.out.println("压缩文件的名称为:" + zipFile.getName());
压缩单个文件
- /** 压缩单个文件*/
- public static void ZipFile(String filepath ,String zippath) {
- try {
- File file = new File(filepath);
- File zipFile = new File(zippath);
- InputStream input = new FileInputStream(file);
- ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
- zipOut.putNextEntry(new ZipEntry(file.getName()));
- int temp = 0;
- while((temp = input.read()) != -1){
- zipOut.write(temp);
- }
- input.close();
- zipOut.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
应用:
- ZipFile("d:/hello.txt", "d:/hello.zip");
压缩多个文件(文件夹)
- /** 一次性压缩多个文件,文件存放至一个文件夹中*/
- public static void ZipMultiFile(String filepath ,String zippath) {
- try {
- File file = new File(filepath);// 要被压缩的文件夹
- File zipFile = new File(zippath);
- InputStream input = null;
- ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
- if(file.isDirectory()){
- File[] files = file.listFiles();
- for(int i = 0; i < files.length; ++i){
- input = new FileInputStream(files[i]);
- zipOut.putNextEntry(new ZipEntry(file.getName() + File.separator + files[i].getName()));
- int temp = 0;
- while((temp = input.read()) != -1){
- zipOut.write(temp);
- }
- input.close();
- }
- }
- zipOut.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
应用:成都java培训
- ZipMultiFile("f:/uu", "f:/zippath.zip");
解压缩单个文件
- /** 解压缩(解压缩单个文件)*/ www.cdtarena.com
- public static void ZipContraFile(String zippath ,String outfilepath ,String filename) {
- try {
- File file = new File(zippath);//压缩文件路径和文件名
- File outFile = new File(outfilepath);//解压后路径和文件名
- ZipFile zipFile = new ZipFile(file);
- ZipEntry entry = zipFile.getEntry(filename);//所解压的文件名
- InputStream input = zipFile.getInputStream(entry);
- OutputStream output = new FileOutputStream(outFile);
- int temp = 0;
- while((temp = input.read()) != -1){
- output.write(temp);
- }
- input.close();
- output.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
应用:
- ZipContraFile("d:/hello.zip","d:/eee.txt", "hello.txt");
解压缩多个文件
- /** 解压缩(压缩文件中包含多个文件)可代替上面的方法使用。
- * ZipInputStream类
- * 当我们需要解压缩多个文件的时候,ZipEntry就无法使用了,
- * 如果想操作更加复杂的压缩文件,我们就必须使用ZipInputStream类
- * */
- public static void ZipContraMultiFile(String zippath ,String outzippath){
- try {
- File file = new File(zippath);
- File outFile = null;
- ZipFile zipFile = new ZipFile(file);
- ZipInputStream zipInput = new ZipInputStream(new FileInputStream(file));
- ZipEntry entry = null;
- InputStream input = null;
- OutputStream output = null;
- while((entry = zipInput.getNextEntry()) != null){
- System.out.println("解压缩" + entry.getName() + "文件");
- outFile = new File(outzippath + File.separator + entry.getName());
- if(!outFile.getParentFile().exists()){
- outFile.getParentFile().mkdir();
- }
- if(!outFile.exists()){
- outFile.createNewFile();
- }
- input = zipFile.getInputStream(entry);
- output = new FileOutputStream(outFile);
- int temp = 0;
- while((temp = input.read()) != -1){
- output.write(temp);
- }
- input.close();
- output.close();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
应用:
- ZipContraMultiFile("f:/zippath.zip", "d:/");
- ZipContraMultiFile("d:/hello.zip", "d:/");
IO操作之使用zip包压缩和解压缩文件的更多相关文章
- [Java 基础] 使用java.util.zip包压缩和解压缩文件
reference : http://www.open-open.com/lib/view/open1381641653833.html Java API中的import java.util.zip ...
- 使用commons-compress操作zip文件(压缩和解压缩)
http://www.cnblogs.com/luxh/archive/2012/06/28/2568758.html Apache Commons Compress是一个压缩.解压缩文件的类库. 可 ...
- Linux常用命令学习3---(文件的压缩和解压缩命令zip unzip tar、关机和重启命令shutdown reboot……)
1.压缩和解压缩命令 常用压缩格式:.zip..gz..bz2..tar.gz..tar.bz2..rar .zip格式压缩和解压缩命令 zip 压缩文件名 源文件:压缩文件 ...
- Java 的zip压缩和解压缩
Java 的zip压缩和解压缩 好久没有来这写东西了,今天中秋节,有个东西想拿出来分享,一来是工作中遇到的问题,一来是和csdn问候一下,下面就分享一个Java中的zip压缩技术,代码实现比较简单,代 ...
- Java用ZIP格式压缩和解压缩文件
转载:java jdk实例宝典 感觉讲的非常好就转载在这保存! java.util.zip包实现了Zip格式相关的类库,使用格式zip格式压缩和解压缩文件的时候,须要导入该包. 使用zipoutput ...
- 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的生命周期和程序的生命周期
[源码下载] 重新想象 Windows 8 Store Apps (70) - 其它: 文件压缩和解压缩, 与 Windows 商店相关的操作, app 与 web, 几个 Core 的应用, 页面的 ...
- java采用zip方式实现String的压缩和解压缩CompressStringUtil类
CompressStringUtil类:不多说,直接贴代码: /** * 压缩 * * @param paramString * @return */ public static final byte ...
- Java对zip格式压缩和解压缩
Java对zip格式压缩和解压缩 通过使用java的相关类可以实现对文件或文件夹的压缩,以及对压缩文件的解压. 1.1 ZIP和GZIP的区别 gzip是一种文件压缩工具(或该压缩工具产生的压缩文件格 ...
- Java ZIP压缩和解压缩文件(解决中文文件名乱码问题)
Java ZIP压缩和解压缩文件(解决中文文件名乱码问题) 学习了:http://www.tuicool.com/articles/V7BBvy 引用原文: JDK中自带的ZipOutputStrea ...
随机推荐
- asp.NET配置
添加用户 1.选择创建用户 2 可以使用网站管理工具来管理应用程序的所有安全设置.可以设置用户和密码(身份验证),可以创建角色(用户组),还可以创建权限(用于控制对应用程序各个部分的访问的规则). ...
- [译]Stairway to Integration Services Level 13 - SSIS 变量回顾
介绍 在前一篇中我们组合了已经学过的事件冒泡 event bubbling, 日志记录 logging, 和父子模型 Parent-Child pattern 建立了自定义的SSIS包日志记录. 本文 ...
- java URI 与URL问题
File类存在两个看起来很相似的方法toURI()和toURL(),这两个方法都是将文件转换成一个链接,可以网络访问.只是URI和URL的应用范围不同,URI来的更广. 那么为什么要使用toURI() ...
- linux下移动或者复制文件覆盖相同文件夹时,文件夹里面的每个文件都提示是否覆盖
链接地址:http://blog.chinaunix.net/uid-23683795-id-2391087.html # vi ~/.bashrc 如果你看到如下内容,以下命令都会用别名执行了, ...
- 2013 南京邀请赛 C count the carries
/** 大意: 给定区间(a,b), 将其转化为二进制 计算从a+(a+1)+(a+2)....+(a+b-1),一共有多少次进位 思路: 将(a,b)区间内的数,转化为二进制后,看其每一位一共有多少 ...
- (Problem 34)Digit factorials
145 is a curious number, as 1! + 4! + 5! = 1 + 24 + 120 = 145. Find the sum of all numbers which are ...
- Java大顶和小顶
http://blog.sina.com.cn/s/blog_651c9a360100o7y1.html http://blog.csdn.net/cnbird2008/article/details ...
- android:background="@drawable/home_tab_bg"
android:background="@drawable/home_tab_bg" home_tab_bg/xml: <bitmap xmlns:android=" ...
- hibernate懒加载和json序列化冲突
因为懒加载这个对象属性只是一个代理对象,如果json直接当作一个存在的属性去序列化就会出现错误,所以就只能这样了,当然还有其他办法吧 或者在class上加上 @JsonIgnoreProperties ...
- 【Oracle】SQL*Loader-522: lfiopn failed for file
Linux下使用sqlldr进行批量操作,此操作会自动生成和删除临时文件. 因此,当前操作的用户必须具备对存放文件的文件夹有增删改的权限. 使用root登录,修改改文件夹权限为777即可. chmod ...