java生成zip压缩文件,解压缩文件
1.生成zip
public static void main(String[] args) {
try {
// testZip("c:\\temp.txt", "c:\\temp4.zip");
// testZip("c:\\Result.txt", "c:\\temp4.zip"); //不然会被一个文件覆盖了.
//压缩多个文件的关键: ZipOutputStream out 作为参数传递.
//一个流,否则存在覆盖的问题,即每次会new一个,所以外置.
ZipOutputStream zos = null;
zos = new ZipOutputStream(new FileOutputStream("c:\\temp5.zip"));
testZip("c:\\temp.txt",zos);
testZip("c:\\Result.txt",zos);
//外置
zos.closeEntry();
zos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 重复压缩文件
* @param zipEntryName // 去掉String zipEntryName,
* @param filePath
* @param zipPath
* @throws Exception
*/
public static void testZip(String filePath,ZipOutputStream zos) throws Exception{
//压缩包
/*ZipOutputStream zos = null;*/
// BufferedOutputStream bos = null;
// File zipFile = new File(zipPath);
// if(zipFile.exists()==false){
/* zos = new ZipOutputStream(new FileOutputStream(zipPath));*/
// bos = new BufferedOutputStream(zos); //Buffer...
// }else{
//
// }
File f = new File(filePath);
// //create zip
FileInputStream fis = new FileInputStream(f);
// BufferedInputStream bis = new BufferedInputStream(fis);
// set the file name in the .zip file
// zos.putNextEntry(new ZipEntry(zipEntryName));
zos.putNextEntry(new ZipEntry(f.getName()));
// set the declear
zos.setComment("by zip test!");
// byte[] b = new byte[1024];
// while (true) {
// int len = bis.read(b);
// if (len == -1)
// break;
// bos.write(b, 0, len);
// System.out.println(new String(b, 0, len));
// }
// bos.flush(); //这一行重要,否则txt是空白文件.
byte[] buffer = new byte[1024];
int len = 0 ;
// 读取文件的内容,打包到zip文件
while ((len = fis.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
fis.close();
/*zos.closeEntry();
zos.close();*/
}
2.解压缩
public static void main(String[] args) throws Exception {
// get a zip file instance
File file = new File("c:\\temp5.zip");
// get a ZipFile instance
ZipFile zipFile = new ZipFile(file);
// create a ZipInputStream instance
ZipInputStream zis = new ZipInputStream(new FileInputStream(file));
// create a ZipEntry instance , lay the every file from
// decompress file temporarily
ZipEntry entry = null;
// a circle to get every file
while ((entry = zis.getNextEntry()) != null) {
System.out.println("decompress file :" + entry.getName());
// define the path to set the file
File outFile = new File("c:\\zip\\"
+ entry.getName());
// if the file's parent directory wasn't exits ,than
// create the directory
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdir();
}
// if the file not exits ,than create the file
if (!outFile.exists()) {
outFile.createNewFile();
}
// create an input stream 读文件
BufferedInputStream bis = new BufferedInputStream(
zipFile.getInputStream(entry));
// create an output stream 写文件
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(outFile));
byte[] b = new byte[1024];
while (true) {
int len = bis.read(b);
if (len == -1)
break;
bos.write(b, 0, len);
}
// close stream
bis.close();
bos.close();
}
zis.close();
}
java生成zip压缩文件,解压缩文件的更多相关文章
- java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹
一.简述 zip用于压缩和解压文件.使用到的类有:ZipEntry ZipOutputStream 二.具体实现代码 package com.joyplus.test; import java.io ...
- PHP生成ZIP压缩文件
PHP生成ZIP压缩文件 /* * 生成zip压缩文件 * $sourceDir:被压缩的文件夹或文件 * $outFileName:输出的压缩文件名称 * */ function createZip ...
- Java 的zip压缩和解压缩
Java 的zip压缩和解压缩 好久没有来这写东西了,今天中秋节,有个东西想拿出来分享,一来是工作中遇到的问题,一来是和csdn问候一下,下面就分享一个Java中的zip压缩技术,代码实现比较简单,代 ...
- java直接生成zip压缩文件精简代码(跳过txt文件)
/** * @param args */ public static void main(String[] args) throws Exception{ ZipOutputStream zos = ...
- Java操作zip压缩和解压缩文件工具类
需要用到ant.jar(这里使用的是ant-1.6.5.jar) import java.io.File; import java.io.FileInputStream; import java.io ...
- java.util.zip压缩打包文件总结二: ZIP解压技术
一.简述 解压技术和压缩技术正好相反,解压技术要用到的类:由ZipInputStream通过read方法对数据解压,同时需要通过CheckedInputStream设置冗余校验码,如: Checked ...
- C#压缩、解压缩文件(夹)(rar、zip)
主要是使用Rar.exe压缩解压文件(夹)(*.rar),另外还有使用SevenZipSharp.dll.zLib1.dll.7z.dll压缩解压文件(夹)(*.zip).需要注意的几点如下: 1.注 ...
- Linux命令(十六) 压缩或解压缩文件和目录 zip unzip
目录 1.命令简介 2.常用参数介绍 3.实例 4.直达底部 命令简介 zip 是 Linux 系统下广泛使用的压缩程序,文件压缩后扩展名为 ".zip". zip 命令用来将文件 ...
- php生成zip压缩文件的方法,支持文件和压缩包路径查找
/* * new creatZip($_dir,$_zipName); *@ _dir是被压缩的文件夹名称,可使用路径,例 'a'或者'a/test.txt'或者'test.txt' *@ _zipN ...
随机推荐
- jQueryUI详解
引入文件下载地址:http://jqueryui.com/download/ dialog常见的参数: 常用参数: 属性 类型 说明 Boolean autoOpen 属性 设置该组件被调用时的打开状 ...
- Intellij IDEA使用Docker插件部署应用
1.安装Docker插件 配置Docker Api,在API URL中填入api的地址,记得Docker后台程序启动是要配置 -H tcp://0.0.0.0:2375 开放远程地址端口,注意这里的i ...
- PLC300寻址指令
1.寻址图解 2.直接寻址 直接寻址包括两大类,绝对地址寻址和符号地址寻址 绝对地址:由一个标识符和存储器位置组成. 例如:I 0.0 Q 1.7 PIW 256 PQW 512 MD 20 T 15 ...
- IDEA 下载 和 安装 22
1. IDEA 下载 网址 pttps://www.jetbrains.com IDEA 优点 :高度集成企业软件工程的概念(svn, git) 缺点: 破解存在在法律风险 ; E ...
- git操作中出现Unlink of file '......' failed. Should I try again?
在操作git中有时候会提示 Unlink of file '......' failed. Should I try again? 原因是你工作目录有某些文件正在被程序使用,这个程序多半是Idea,V ...
- hive-命令操作记录
Hive 的官方文档请参考:http://wiki.apache.org/hadoop/Hive/LanguageManual . Create Table CREATE [EXTERNAL] TAB ...
- 160多个android开源码汇总
第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包含ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...
- BIM轻量化助力建筑业迈向BIM+时代
多年以来,BIM一直是曲高和寡,仅仅在建筑圈内孤芳自赏.我们花那么多心思建了那么多BIM模型,如果仅仅在建筑圈内使用,未免暴殄天物.如何充分发掘BIM的价值,让更多的受众从BIM中受益,这是我们亟待解 ...
- Python 进制转换 二进制 八进制 十进制 十六进制
Python 进制转换 二进制 八进制 十进制 十六进制 作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/python3-scale.html 全局定义一定不 ...
- 【python】Python的安装和配置
Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. Pyt ...