Java压缩文件/目录成ZIP包最新技巧

满城尽带白口罩

满城尽带白口罩

2016-02-19 14:34

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的Java压缩文件/目录成ZIP包最新技巧,希望大家看完后能赶快学习起来。
使用Java自带的类 java.util.zip进行文件/目录的压缩的话,有一点不足,不支持中文的名件/目录命名,假如有中文名,那么打包就会失败。本人经过一段时间的摸索和实践,发现在一般的Ant.jar类库中也有zip类,import org.apache.tools.zip.*,能够解决不支持中文文件目录的问题,同时,Ant的获得途径也比较多,一般的应用服务器中有这个包,实在不行去下载个tomcat5.X,里面也有ant.jar,本人经过测试,可以使用。
  
  例子如下:
  
  import java.io.File;
  import org.apache.tools.zip.ZipOutputStream;
  import java.io.FileInputStream;
  import java.io.FileOutputStream;
  import dianda.cwmanage.*;
  import dianda.com.util.Format;
  
  public class CompressBook {
   public CompressBook() {
  }
  
  public void zip(String inputFileName) throws Exception {
   String zipFileName="c:est.zip";//打包后文件名字
   System.out.println(zipFileName);
   zip(zipFileName, new File(inputFileName));
  
  }
  
  private void zip(String zipFileName, File inputFile) throws Exception {
   ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
   zip(out, inputFile, "");
   System.out.println("zip done");
   out.close();
  }
  
  private void zip(ZipOutputStream out, File f, String base) throws Exception {
   if (f.isDirectory()) {
  File[] fl = f.listFiles();
  out.putNextEntry(new org.apache.tools.zip.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 org.apache.tools.zip.ZipEntry(base));
  FileInputStream in = new FileInputStream(f);
  int b;
  System.out.println(base);
  while ( (b = in.read()) != -1) {
   out.write(b);
  }
  in.close();
   }
  }
  }
  唯一遗憾,美中不足的是,无论,java.util.zip或者org.apache.tools.zip都不能解压rar工具打成的rar包,搜了半天也找不到采用java解压rar工具打成的包,盼望哪位高人能够提供解压rar工具打成的包,和大家分享一下!进入讨论组讨论。
展开更多 50%)
分享

猜你喜欢

Java压缩文件/目录成ZIP包最新技巧

编程语言 网络编程
Java压缩文件/目录成ZIP包最新技巧

WinRAR如何生成ZIP压缩文件

电脑网络
WinRAR如何生成ZIP压缩文件

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java中如何调用cmd压缩文件

编程语言 网络编程
Java中如何调用cmd压缩文件

360压缩压缩文件

电脑网络
360压缩压缩文件

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

怎么压缩文件

电脑入门
怎么压缩文件

360压缩如何压缩文件

电脑网络
360压缩如何压缩文件

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Eclipse 3.0 简介和插件开发示例

Eclipse 3.0 简介和插件开发示例

EJB 技术的数据库应用

EJB 技术的数据库应用
下拉加载更多内容 ↓