zip文件解压或压缩
- <span style="font-size:18px;">/**
- * lsz
- */
- public final class ZipUtil {
- /**
- * 解压zip文件
- * @param unZipfile
- * @param destFile
- */
- public static void unZip(String unZipfile, String destFile) {
- FileOutputStream fileOut;
- File file;
- InputStream inputStream;
- byte[] buf = new byte[1024*4];
- try {
- //生成一个zip的文件
- ZipFile zipFile = new ZipFile(unZipfile, "GBK");
- //遍历zipFile中所有的实体,并把他们解压出来
- for (@SuppressWarnings("unchecked")
- Enumeration<ZipEntry> entries = zipFile.getEntries(); entries
- .hasMoreElements();) {
- ZipEntry entry = entries.nextElement();
- //生成他们解压后的一个文件
- file = new File(destFile+File.separator+entry.getName());
- if (entry.isDirectory()) {
- file.mkdirs();
- } else {
- // 如果指定文件的目录不存在,则创建之.
- File parent = file.getParentFile();
- if (!parent.exists()) {
- parent.mkdirs();
- }
- //获取出该压缩实体的输入流
- inputStream = zipFile.getInputStream(entry);
- fileOut = new FileOutputStream(file);
- int length = 0;
- //将实体写到本地文件中去
- while ((length = inputStream.read(buf)) > 0) {
- fileOut.write(buf, 0, length);
- }
- fileOut.close();
- inputStream.close();
- }
- }
- zipFile.close();
- //解压完后将原压缩文件删除
- File zipfile = new File(unZipfile);
- if(zipfile.exists()){
- zipfile.delete();
- }
- } catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
- /**
- * 一个文件夹压缩
- * 压缩文件夹
- * @param filepath
- * @param savepath
- * @throws Exception
- */
- public static void toZip(String filepath,String savepath) throws Exception{
- File file = new File(filepath);
- if(file.exists()){
- //判断导出路径是否为空,如果为空,则将压缩包生成到当前路径下
- if(StringUtils.isBlank(savepath)){
- savepath = filepath+".zip";
- }else{
- savepath = savepath+".zip";
- }
- ZipOutputStream outPut = new ZipOutputStream(new FileOutputStream(new File(savepath)));
- outPut.setEncoding("GBK");//设置编码
- createZip(outPut,file.listFiles(),null);
- outPut.flush();
- outPut.close();
- }else{
- //not found
- throw new RuntimeException("Err :not found file exception:"+filepath);
- }
- }
- private static void createZip(org.apache.tools.zip.ZipOutputStream outPut,File[] listFiles,String fuPath) throws Exception {
- for(File f : listFiles){
- String name = fuPath==null?f.getName():fuPath+"/"+f.getName();;
- if(f.isDirectory()){
- outPut.putNextEntry(new ZipEntry(name+"/"));
- createZip(outPut,f.listFiles(),name);
- }else{
- outPut.putNextEntry(new ZipEntry(name));
- InputStream is = new FileInputStream(f);
- byte[] bys = new byte[1024];
- int len = 0;
- while((len = is.read(bys))!=-1)
- outPut.write(bys, 0, len);
- is.close();
- outPut.flush();
- }
- }
- }
- /*
- * 复制文件 只能使复制文件,不能复制文件夹
- */
- public static void fileChannelCopy(File fromfile, File tofile) {
- FileInputStream fi = null;
- FileOutputStream fo = null;
- FileChannel in = null;
- FileChannel out = null;
- try {
- fi = new FileInputStream(fromfile);
- fo = new FileOutputStream(tofile);
- in = fi.getChannel();//得到对应的文件通道
- out = fo.getChannel();//得到对应的文件通道
- in.transferTo(0, in.size(), out);//连接两个通道,并且从in通道读取,然后写入out通道
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- fi.close();
- in.close();
- fo.close();
- out.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }</span>
zip文件解压或压缩的更多相关文章
- c++builder ZIP文件解压与压缩(ZLIB DLL调用)(转载 )
转载:http://blog.csdn.net/goodai007/article/details/7414512 头文件:ZipAndFile.h //----------------------- ...
- ZIP文件解压
public class DZip { /// <summary> /// 压缩为ZIP文件 /// </summary> public void Zip(string dir ...
- linux下压缩成zip文件解压zip文件
linux zip命令的基本用法是: zip [参数] [打包后的文件名] [打包的目录路径] linux zip命令参数列表: -a 将文件转成ASCII模式 -F 尝试修复损坏 ...
- Linux:文件解压与压缩
文件打包与压缩 常见压缩文件格式: |文件后缀名 |说明| |.zip |zip程序打包压缩的文件| |.rar |rar程序压缩的文件| |.7z |7zip程序压缩的文件| |.tar |tar程 ...
- asp.net实现文件解压和压缩
C#解压RAR压缩文件(--转载--测试通过) using System; using System.Collections.Generic; using System.Text; using Sys ...
- Linux 下 zip 文件解压乱码解决方案,ubuntu16.10亲测可用
文章来源: https://www.zhihu.com/question/20523036 今天邮件中收到了一个压缩文件,解压后却是乱码,从网上也找了几个方法,目前这个方法还是比较可靠的,如下所示: ...
- Python实现加密的ZIP文件解压(密码已知)
博主在上篇博文介绍了<Python实现加密的RAR文件解压(密码已知)>后,又尝试了ZIP文件的解压方法,下面开始分享. 当ZIP文件的压缩密码已知时,可以通过调用zipfile库进行解压 ...
- linux .tar.xz 文件解压和压缩
场景:centos7.0下文件格式为xxx.tar.xz,解压和压缩命令: 压缩 tar -Jcf linux-3.10.0-123.13.1.el7.tar.xz(文件名) linux-3.10.0 ...
- Liunx文件解压与压缩
文件压缩和解压缩 常见压缩格式如下 .zip .gz .bz2 .tar.gz .tar.gz2 .zip压缩 zip 压缩文件名 源文件 压缩文件 zip -r(递归) 压缩文件名 源目录 压缩目录 ...
随机推荐
- 微软有完善的WP开发教程
微软的Windows Phone 开发者中心 地址:http://dev.windowsphone.com/zh-cn/develop由于这里的教程非常完善,大家直要把开发者中心的内容看完就可以了,所 ...
- 多项分布(multinominal distribution)
简介 更一般性的问题会问:“点数1~6的出现次数分别为(x1,x2,x3,x4,x5,x6)时的概率是多少?其中sum(x1~x6)= n”.这就是一个多项式分布. 定义 把二项分布推广至多个(大于2 ...
- Centos7下安装netstat
刚安装centos7发想没有查看端口的命令 netstat yum install net-tools
- springMVC整合memcached
非原创,文章转自:http://www.cnblogs.com/xiaoqingxin/p/4132391.html 文章我就不全copy了,摘抄下我关注的部分,想看原文的请移步上面文章链接 appl ...
- 滑动选择日期(基于sui-mobile的移动端)
$(page).on('touchmove','#touchMoveTime',function (event) { touchMove(event); }); scrollBarInit(); // ...
- C# Winform程序请求管理员权限
如果你的Winform程序需要管理员权限才能正常执行,请加入如下代码: static class Program { /// <summary> /// 应用程序的主入口点. /// &l ...
- shell调用sqlplus批量执行sql文件
在最近的工作中,经常需要批量执行一些DML, DDL, PL/SQL语句或导入一些Function, Procedure.因为support的国家比较多,常常需要一个登陆到一个国家的数据库上执行完成后 ...
- 【WS-Federation】到底有多少公司在用WS-Federation
到底有多少公司在用WS-Federation? sso先调用一个登录接口 获取一个token 然后再调用各种业务接口 如果是ssl token 直接暴露就行了 没有ssl 最好每次取一个token, ...
- (转)汇编bne的问题
网址:http://blog.csdn.net/lwj103862095/article/details/8073571 memsetup: @ 设置存储控制器以便使用SDRAM等外设 mov ...
- bnuoj 1057 函数(模拟)
http://www.bnuoj.com/bnuoj/problem_show.php?pid=1057 [题意]:给定x的值,带入f(x)求函数值 [题解]:注意第一个数的符号可能是'+',这里把我 ...