Java使用Zip壓縮
使用壓縮流需要注意的是
壓縮輸入流的available方法返回的永遠是1或者0
使用GZIP壓縮
壓縮輸入流的available方法返回的永遠是1或者0
-
import java.util.zip.*;
-
import java.io.*;
-
-
public class ZipUtil {
-
public static void main(String[] args) throws IOException {
-
unzip("/home/lihuilin/桌面/src.zip", "/home/lihuilin/桌面/tar/");
-
zip("/home/lihuilin/桌面/tar/", "/home/lihuilin/桌面/target.zip");
-
}
-
-
public static void unzip(String source, String target) throws IOException {
-
File t = new File(target);
-
if (!t.exists()) {
-
t.mkdirs();
-
}
-
ZipInputStream in = new ZipInputStream(new BufferedInputStream(new FileInputStream(source)));
-
String filepath = target;
-
ZipEntry entry = null;
-
int b;
-
while ((entry = in.getNextEntry()) != null) {
-
if (entry.isDirectory()) {
-
new File(filepath + entry.getName()).mkdirs();
-
} else {
-
System.out.println(filepath + entry.getName());
-
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(filepath + entry.getName()));
-
while ((b = in.read()) != -1) {
-
out.write(b);
-
}
-
in.closeEntry();
-
out.flush();
-
out.close();
-
}
-
}
-
in.close();
-
-
}
-
-
public static void zip(String source, String target) throws IOException {
-
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(target));
-
for (File file : new File(source).listFiles()) {
-
zip(file, out, source);
-
}
-
out.close();
-
-
}
-
-
private static void zip(File file, ZipOutputStream out, String filepath) throws IOException {
-
-
if (file.isDirectory()) {
-
for (File f : file.listFiles()) {
-
zip(f, out, filepath);
-
}
-
} else {
-
ZipEntry entry = new ZipEntry(file.getPath().replaceAll(filepath, ""));
-
out.putNextEntry(entry);
-
-
FileInputStream fis = new FileInputStream(file.toString());
-
int i = 0;
-
while ((i = fis.read()) != -1) {
-
out.write(i);
-
}
-
fis.close();
-
out.flush();
-
out.closeEntry();
-
}
-
-
}
-
- }
使用GZIP壓縮
-
import java.io.BufferedInputStream;
-
import java.io.BufferedOutputStream;
-
import java.io.FileInputStream;
-
import java.io.FileOutputStream;
-
import java.io.IOException;
-
import java.util.zip.GZIPInputStream;
-
import java.util.zip.GZIPOutputStream;
-
-
public class GZIPUtil {
-
public static void main(String[] args) throws IOException {
-
compress("C:\\Users\\new\\Desktop\\原始檔.txt", "C:\\Users\\new\\Desktop\\目標檔案.txt");
-
decompress("C:\\Users\\new\\Desktop\\目標檔案.txt", "C:\\Users\\new\\Desktop\\解壓檔案.txt");
-
}
-
-
private static void decompress(String source, String target) throws IOException {
-
GZIPInputStream in = new GZIPInputStream(new BufferedInputStream(new FileInputStream(source)));
-
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(target));
-
int b = 0;
-
while ((b = in.read()) != -1) {
-
out.write(b);
-
}
-
out.flush();
-
out.close();
-
in.close();
-
}
-
-
private static void compress(String source, String target) throws IOException {
-
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(source));
-
GZIPOutputStream out = new GZIPOutputStream(new BufferedOutputStream(new FileOutputStream(target)));
-
byte[] data = new byte[bis.available()];
-
bis.read(data);
-
out.write(data);
-
out.flush();
-
out.close();
-
bis.close();
-
}
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1158736/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java 生成 zip格式 壓縮檔案Java
- java 把檔案壓縮成 zipJava
- zip壓縮檔案處理方案(Zip4j壓縮和解壓)
- 使用java API進行zip遞迴壓縮資料夾以及解壓JavaAPI遞迴
- node ~ zip壓縮 && 檔案加密加密
- Ashampoo ZIP Pro 4,解壓縮
- linux命令系列-zip(壓縮打包)Linux
- CentOS中zip壓縮和unzip解壓縮命令詳解CentOS
- Linux科研武器庫 - 檔案壓縮與解壓縮 - zip / unzipLinux
- Centos7中使用7zip壓縮工具CentOS
- java解壓rar,解壓zipJava
- Linux tar 打包 gz bz xz zip 壓縮Linux
- Windows的壓縮資料夾(zip/cab)Windows
- WinZip Pro 9 for Mac 專業zip壓縮解壓工具Mac
- 壓縮檔案格式rar和zip有什麼區別 zip和rar哪個是無失真壓縮
- java 壓縮包 遍歷解壓 zip 和 7z 指定格式檔案Java
- php 建立壓縮包zip,並將指定檔案放入zip中PHP
- 壓縮檔案格式rar和zip有什麼區別 壓縮檔案格式rar和zip哪個好
- Go 建立帶密碼的zip壓縮包Go密碼
- The Unarchiver - Unzip RAR ZIP Mac - mac解壓縮工具HiveMac
- flowable 從zip壓縮包 部署流程定義
- rar壓縮解壓工具:RAR Extractor - ZIP Unarchiver中文啟用版Hive
- p7zip 解壓超過 4G壓縮包
- vue-前端匯出 pdf 並且壓縮 zipVue前端
- win10系統如何使用ACDSee檢視ZIP格式壓縮檔案Win10
- Golang 學習筆記(五)- archive/zip 實現壓縮及解壓Golang筆記Hive
- Laravel 中建立 Zip 壓縮檔案並提供下載Laravel
- 批處理 壓縮zip 並過濾部分檔案
- 使用zlib庫解壓zip檔案
- 解壓縮軟體:iFastZip - Extract RAR&ZIP&7Z for MacASTMac
- linux 高效壓縮工具之xz的壓縮解壓使用Linux
- 使用Java API進行tar.gz檔案及資料夾壓縮解壓縮JavaAPI
- php 把檔案加入到現有的zip壓縮包中PHP
- UE4連結Android並呼叫解壓縮zip的介面Android
- jQuery.qrcode 生成二維碼,並使用 jszip、FileSaver 下載 zip 壓縮包至本地。jQueryJS
- Nginx網路壓縮 CSS壓縮 圖片壓縮 JSON壓縮NginxCSSJSON
- 初級:如何在 Linux 中 zip 壓縮檔案和資料夾Linux
- 小視訊原始碼,java使用Thumbnails壓縮圖片原始碼JavaAI
- linux 解壓rar,zipLinux