Java实现对文件做压缩和解压缩(一般用于文件批量导入导出)
来源:互联网 发布:为什么开不了淘宝店 编辑:程序博客网 时间:2024/06/15 04:57
/**
* com.mysoftlife
*
* ver date author
* ──────────────────────────────────
* 2013 -8- 6 jmj
*
* Copyright (c) 2013, gomai
*/
package com.mysoftlife;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
/**
* @author jmj
* @version
* @Date 2013 2013 -8- 6 下午01:57:56
*/
public class Zip {
public Zip(){}
public List<File> fileList =new ArrayList<File>();
public List<File> getFileList() {
return fileList ;
}
public void setFileList(List<File> fileList) {
this.fileList = fileList;
}
/**
* 压缩目录下的文件
*
* @param zipFileName
* @param inputFile
* @throws Exception
* void
* @throws
* @2013-8 -6 下午02:47:19
*/
public void zip(String zipFileName,String inputFile) throws Exception{
zip(zipFileName, new File(inputFile));
}
/**
* 压缩文件
*
* @param zipFileName
* @param inputFile
* @throws Exception
* void
* @throws
* @2013-8 -6 下午02:47:40
*/
public void zip(String zipFileName, File inputFile) throws Exception {
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
zip(out, inputFile, "");
System. out.println("压缩成功!" );
out.close();
}
public void zip(ZipOutputStream out, File f, String base) throws Exception {
System. out.println("正在压缩 " + f.getName());
if (f.isDirectory()) {
File[] fl = f.listFiles();
out.putNextEntry( new ZipEntry(base + "/" ));
base = base.length() == 0 ? "" : base + "/" ;
for (int i = 0; i < fl.length; i++) {
zip(out, fl[i], base + fl[i].getName());
}
} else {
out.putNextEntry( new ZipEntry(base));
FileInputStream in = new FileInputStream(f);
int b;
while ((b = in.read()) != -1)
out.write(b);
in.close();
}
}
/**
* 解压缩
*
* @param zipFileName
* @param outputDirectory
* @throws Exception
* void
* @throws
* @2013-8 -6 下午02:47:59
*/
public void unzip(String zipFileName, String outputDirectory) throws
Exception {
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
ZipEntry z;
while ( (z = in.getNextEntry()) != null) {
System. out.println("正在解压 " + z.getName());
if (z.isDirectory()) {
String name = z.getName();
name = name.substring(0, name.length() - 1);
File f = new File(outputDirectory + File.separator + name);
f.mkdir();
System. out.println("创建目录 " + outputDirectory + File.separator + name);
} else {
File f = new File(outputDirectory + File.separator + z.getName());
f.createNewFile();
FileOutputStream out = new FileOutputStream(f);
//获取解压后的单个文件
if(f!=null ){
fileList.add(f);
}
int b;
while ( (b = in.read()) != -1)
out.write(b);
out.close();
}
}
in.close();
}
public static void main(String[] args) {
Zip z= new Zip();
try {
// z.zip("D://projects.zip", "D://projects");//压缩文件
z.unzip( "D://wenjian//projects.zip" , "D://wenjian" );//解压缩文件
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
0 0
- Java实现对文件做压缩和解压缩(一般用于文件批量导入导出)
- Java实现对文件的压缩和解压缩
- java实现文件打包、压缩和解压缩
- JAVA实现多文件压缩和解压缩
- 对文件简单压缩和解压缩
- 使用Java实现文件的压缩和解压缩
- 使用Java实现文件的压缩和解压缩
- 使用Java实现文件的压缩和解压缩
- Java实现多文件压缩和解压缩代码(未测试)
- C#实现文件的压缩和解压缩
- C#实现文件的压缩和解压缩
- 哈弗曼编码实现文件压缩和解压缩
- 文件压缩和解压缩
- Java zip/gzip文件压缩和解压缩
- Java zip/gzip文件压缩和解压缩
- java实现zip压缩和解压缩 源码
- java 压缩和解压缩
- java 压缩和解压缩
- 排序四之插入排序
- 如何配置log4j2日志记录至数据库
- 正式开启CSDN第一天
- Android核心组件之Service
- iOS系统版本比较的宏使用
- Java实现对文件做压缩和解压缩(一般用于文件批量导入导出)
- SSH项目开发里用maven的好处
- linux系统重启oracle
- Map集合中嵌套list
- 映射请求参数、请求方法或请求头
- python调用java 登陆weblogic
- Redis3.0集群完全版(数据迁移问题)
- Software Documentation Tools之Markdown
- github客户端切换账号