java將文件打包成ZIP壓縮文件的工具類實例
package com.lanp;import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream;
/**
- 將文件打包成ZIP壓縮文件
- @author LanP
@since 2012-3-1 15:47 */ public final class FileToZip {
private FileToZip() {
}
/**
- 將存放在sourceFilePath目錄下的源文件,打包成fileName名稱的ZIP文件,并存放到zipFilePath。
- @param sourceFilePath 待壓縮的文件路徑
- @param zipFilePath 壓縮后存放路徑
- @param fileName 壓縮后文件的名稱
@return flag */ public static boolean fileToZip(String sourceFilePath,String zipFilePath,String fileName) { boolean flag = false; File sourceFile = new File(sourceFilePath); FileInputStream fis = null; BufferedInputStream bis = null; FileOutputStream fos = null; ZipOutputStream zos = null;
if(sourceFile.exists() == false) {
System.out.println(">>>>>> 待壓縮的文件目錄:" + sourceFilePath + " 不存在. <<<<<<");
} else {
try { File zipFile = new File(zipFilePath + "/" + fileName + ".zip"); if(zipFile.exists()) { System.out.println(">>>>>> " + zipFilePath + " 目錄下存在名字為:" + fileName + ".zip" + " 打包文件. <<<<<<"); } else { File[] sourceFiles = sourceFile.listFiles(); if(null == sourceFiles || sourceFiles.length < 1) { System.out.println(">>>>>> 待壓縮的文件目錄:" + sourceFilePath + " 里面不存在文件,無需壓縮. <<<<<<"); } else { fos = new FileOutputStream(zipFile); zos = new ZipOutputStream(new BufferedOutputStream(fos)); byte[] bufs = new byte[1024*10]; for(int i=0;i<sourceFiles.length;i++) { // 創建ZIP實體,并添加進壓縮包 ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName()); zos.putNextEntry(zipEntry); // 讀取待壓縮的文件并寫進壓縮包里 fis = new FileInputStream(sourceFiles[i]); bis = new BufferedInputStream(fis,1024*10); int read = 0; while((read=bis.read(bufs, 0, 1024*10)) != -1) { zos.write(bufs, 0, read); } } flag = true; } } } catch (FileNotFoundException e) { e.printStackTrace(); throw new RuntimeException(e); } catch (IOException 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壓縮文件,main方法測試
- @param args
*/
public static void main(String[] args) {
String sourceFilePath = "C:\home\lp20120301";
String zipFilePath = "C:\home";
String fileName = "lp20120301";
boolean flag = FileToZip.fileToZip(sourceFilePath, zipFilePath, fileName);
if(flag) {
} else {System.out.println(">>>>>> 文件打包成功. <<<<<<");
} } }</pre>System.out.println(">>>>>> 文件打包失敗. <<<<<<");
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!