Java實現多文件壓縮和解壓縮代碼
Java實現多文件壓縮和解壓縮代碼
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;public class TestZIP { /** * 功能:壓縮多個文件成一個zip文件 * @param srcfile:源文件列表 * @param zipfile:壓縮后的文件 */ public static void zipFiles(File[] srcfile, File zipfile) { byte[] buf = new byte[1024]; try { //ZipOutputStream類:完成文件或文件夾的壓縮 ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile)); for (int i = 0; i < srcfile.length; i++) { FileInputStream in = new FileInputStream(srcfile[i]); out.putNextEntry(new ZipEntry(srcfile[i].getName())); int len; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } out.closeEntry(); in.close(); } out.close(); System.out.println("壓縮完成."); } catch (Exception e) { e.printStackTrace(); } } /** * 功能:解壓縮 * @param zipfile:需要解壓縮的文件 * @param descDir:解壓后的目標目錄 */ public static void unZipFiles(File zipfile, String descDir) { try { ZipFile zf = new ZipFile(zipfile); for (Enumeration entries = zf.entries(); entries.hasMoreElements();) { ZipEntry entry = (ZipEntry) entries.nextElement(); String zipEntryName = entry.getName(); InputStream in = zf.getInputStream(entry); OutputStream out = new FileOutputStream(descDir + zipEntryName); byte[] buf1 = new byte[1024]; int len; while ((len = in.read(buf1)) > 0) { out.write(buf1, 0, len); } in.close(); out.close(); System.out.println("解壓縮完成."); } } catch (Exception e) { e.printStackTrace(); } } /**功能: * @param args */ public static void main(String[] args) { //2個源文件 File f1 = new File("D:\\test\\1.csv"); File f2 = new File("D:\\test\\2.xlsx"); File[] srcfile = { f1, f2 }; //壓縮后的文件 File zipfile = new File("D:\\test\\3.zip"); TestZIP.zipFiles(srcfile, zipfile); //需要解壓縮的文件 File file = new File("D:\\test\\3.zip"); //解壓后的目標目錄 String dir = "D:\\test\\1\\"; TestZIP.unZipFiles(file, dir); } } </pre> 轉自:http://blog.csdn.net/zdp072/article/details/44177925
本文由用戶 fmp8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!