Java 文件转Zip实现
2016-07-25 11:27
316 查看
记录下文件转zip的实现:
调用 fileToZip 这个方法即可。
/** * 文件转zip * @param sourceFilePath * @param zipFilePath * @param fileName * @return */ public static boolean fileToZip(String sourceFilePath, String zipFilePath, String fileName) { boolean flag = false; File sourceFile = new File(sourceFilePath); BufferedInputStream bis = null; FileOutputStream fos = null; ZipOutputStream zos = null; if (sourceFile.exists() == false) { System.out.println("待压缩的文件不存在."); } else { try { File zipFile = new File(zipFilePath + "\\" + fileName +".zip"); File[] sourceFiles = sourceFile.listFiles(); if (null == sourceFiles || sourceFiles.length < 1) { System.out.println("待压缩的文件目录里面不存在文件,无需压缩."); } else { fos = new FileOutputStream(zipFile); zos = new ZipOutputStream(new BufferedOutputStream(fos)); for (int i = 0; i < sourceFiles.length; i++) { writeZip(sourceFiles[i], zipFilePath, zos, zipFilePath); } flag = true; } } catch (FileNotFoundException e) { e.printStackTrace(); throw new RuntimeException(e); } finally { // 关闭流 try { if (null != bis) bis.close(); if (null != zos) zos.close(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } } } return flag; } /** * zip写入逻辑 * @param file * @param parentPath * @param zos * @param firstParentName */ private static void writeZip(File file, String parentPath, ZipOutputStream zos, String firstParentName) { if(file.exists()){ if(file.isDirectory()){//处理文件夹 parentPath+=file.getName()+File.separator; File [] files=file.listFiles(); for(File f:files){ writeZip(f, parentPath, zos, firstParentName); } }else{ FileInputStream fis=null; try { fis=new FileInputStream(file); ZipEntry ze = new ZipEntry(parentPath.replace(firstParentName, "") + file.getName()); zos.putNextEntry(ze); byte [] content=new byte[1024]; int len; while((len=fis.read(content))!=-1){ zos.write(content,0,len); zos.flush(); } } catch (FileNotFoundException e) { System.out.println("创建ZIP文件失败"); } catch (IOException e) { System.out.println("创建ZIP文件失败"); }finally{ try { if(fis!=null){ fis.close(); } }catch(IOException e){ System.out.println("创建ZIP文件失败"); } } } } }
调用 fileToZip 这个方法即可。
相关文章推荐
- java知识整理
- 实习见闻(2)——写一个Servlet的小demo
- 负载均衡的几种算法Java实现代码
- Java常量
- eclipse最有用快捷键整理
- eclipse中的.project 和 .classpath文件的具体作用
- 使Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示。
- Java提高篇——Java实现多重继承
- Java内存管理原理及内存区域详解
- spring自动任务调度
- 新建一个module形式的第三方library的通用步骤是:
- java统计abacbacdadbc中的每个字母出现的次数,输出格式是:a(4)b(3)c(3)d(2)
- java基础总结_05
- AES五种加密模式(CBC、ECB、CTR、OCF、CFB)
- 浅谈Java中的equals和==
- Spring是什么
- java集合类深入分析之TreeMap/TreeSet篇
- java 验证码生成
- java 读取excel内容转为JSONArray
- 全面了解Java中Native关键字的作用