Java zip打包工具類
阿新 • • 發佈:2018-12-17
先了解一下知識點:
java.util.zip
- ZipOutputStream:繼承DeflaterOutputStream,該類實現了以ZIP檔案格式寫入檔案的輸出流過濾器。 包括對壓縮和未壓縮條目的支援。
- ZipEntry:此類用於表示ZIP檔案條目。
API
- public void putNextEntry(ZipEntry e) :開始編寫新的ZIP檔案條目,並將流定位到條目資料的開頭。
- public void write(int b) throws IOException:將一個位元組寫入壓縮輸出流。 此方法將阻塞,直到可以寫入位元組。
程式碼:
import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * zip util * @author rocky * @date 2018-10-09 20:00 */ public class ZipUtil { /** * 打包某資料夾下的檔案成zip包 * * @param filePath 要壓縮的資料夾路徑 * @param zipPath 生成的壓縮包存放路徑 * @throws FileNotFoundException */ public static void zipFile(String filePath, String zipPath) throw FileNotFoundException { File dir = new File(filePath); if (!file.isDirectory()) { throw new FileNotFountException("This file is not a directory."); } File zipFile = new File(zipPath); InputStream inputStream = null; try { ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipFile)); File[] dir = file.listFiles(); for (File file1 : files) { inputStream = new FileInputStream(file1); zipOutputStream.putNextEntry(new ZipEntry(file.getName() + File.separator + file1.getName())); int temp = 0; while ((temp = inputStream.read()) != -1) { zipOutputStream.write(temp); } inputStream.close(); } zipOutputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }