java压缩文件源码--ZipUtils

时间:2013-02-03 12:31:30
【文件属性】:

文件名称:java压缩文件源码--ZipUtils

文件大小:2KB

文件格式:RAR

更新时间:2013-02-03 12:31:30

java,file,zip,util,java压缩文件

package com.hexiang.utils; import java.io.*; import java.util.*; import java.util.zip.Adler32; import java.util.zip.CheckedInputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; public class ZipUtils { private static final int BUFFER = 8192; private static void log(String msg){ System.out.println (msg); } private static String getFileName(String filePath){ int index = filePath.indexOf("."); return filePath.substring(0, index); } @SuppressWarnings("unused") private static String getRootPath(String filePath){ int index = filePath.indexOf("."); return filePath.substring(0, index); } public static void zip(String sourceFilePath){ File fileDir = new File(sourceFilePath); if(fileDir.exists()){ log(fileDir.getPath()+" Starting Zip ..."); long startTime = System.currentTimeMillis(); doZip(fileDir); long endTime = System.currentTimeMillis(); long costTime = endTime - startTime; log("Zip Success!"); log("use time -- "+costTime+" millsec!"); }else{ log("can't find the File!"); } } public static void unZip(String zipFilePath){ File fileDir = new File(zipFilePath); if(fileDir.exists()){ log(fileDir.getPath()+" Starting UnZip ..."); long startTime = System.currentTimeMillis(); doUnZip(fileDir); long endTime = System.currentTimeMillis(); long costTime = endTime - startTime; log("UnZip Success!"); log("use time -- "+costTime+" millsec!"); }else{ log("can't find the File!"); } } public static void doZip(File file){ List fileList = new ArrayList(); List allFiles = (ArrayList)searchFiles(file.getPath(), fileList); Object[] fileArray = allFiles.toArray(); BufferedInputStream in = null; FileInputStream fis = null; ZipOutputStream zos = null; FileOutputStream fos = null; try { fos = new FileOutputStream(file.getParent()+File.separator+file.getName()+".zip"); zos = new ZipOutputStream(new BufferedOutputStream(fos, BUFFER)); zos.setLevel(9); byte[] data = new byte [BUFFER]; for (int i = 0; i searchFiles(String sourceFilePath, List fileList){ File fileDir = new File(sourceFilePath); if(fileDir.isDirectory()){ File[] subfiles = fileDir.listFiles(); for(int i = 0; i


【文件预览】:
ZipUtils.java

网友评论

  • 使用以后还是有点小问题的,不过借鉴意义很大,对我的编码有很大帮助!感谢分享
  • ....貌似不行,楼主在改进一下吧
  • 中文不成功上不起啊
  • 不完善,如果完善下更好了,谢谢楼主
  • 哈哈哈 我是用在android上的不会出现中文路径的,但是在用输入流的时候添加格式(gbk),就可以用中文路径了
  • 亲测 含中文的文件的确不成功 但在程序中 用于程序的维护 可以用的 还是要表示感谢
  • 这个很不错复合我的要求
  • 方法不错~ 支持一下,虽然不完善,但是已经挺好的啦
  • 同上 不支持中文,中文会变乱码。
  • 方法不错,只是如果含有中文的文件压缩不成功。