Java檔案壓縮
從接觸計算機開始,便知道了壓縮檔案的存在,剛開始不解(本來我一次就可以開啟檔案,現在卻多了一步,乃是解壓。。。)到了後來,我才慢慢明白壓縮的重要性,除了節省空間,還節省了時間。有時候壓縮檔案的結果會讓你吃驚,大概在原檔案的50%左右,這樣在網路端傳輸的時間將縮短一半。由此可見,它是有多麼的重要。
單個檔案壓縮
首選GZIP
public static void compress(File source, File gzip) {
if(source == null || gzip == null)
throw new NullPointerException();
BufferedReader reader = null;
BufferedOutputStream bos = null;
try {
//讀取文字檔案可以字元流讀取
reader = new BufferedReader(new FileReader(source));
//對於GZIP輸出流,只能使用位元組流
bos = new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(gzip)));
String data;
while((data = reader.readLine()) != null) {
bos.write(data.getBytes());
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
try {
if(reader != null)
reader.close();
if(bos != null)
bos.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
多檔案壓縮
public static void compressMore(File[] files, File outFile) {
if(files == null || outFile == null)
throw new NullPointerException();
ZipOutputStream zipStream = null;
try {
//用校驗流確保輸出資料的完整性
CheckedOutputStream cos = new CheckedOutputStream(new FileOutputStream(outFile), new Adler32());
//用緩衝位元組輸出流進行包裝
zipStream = new ZipOutputStream(new BufferedOutputStream(cos));
for (File file : files) {
if(file != null) {
BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
try {
//新增實體到流中,實際上只需要指定檔名稱
zipStream.putNextEntry(new ZipEntry(file.getName()));
int c;
while((c = in.read()) != -1)
zipStream.write(c);
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
in.close();
}
}
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
try{
if(zipStream != null)
zipStream.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
相關文章
- java 檔案壓縮Java
- 檔案壓縮和解壓縮
- java中 檔案壓縮處理Java
- java中檔案如何加密壓縮?Java加密
- java 把檔案壓縮成 zipJava
- java 生成 zip格式 壓縮檔案Java
- Java壓縮檔案生成工具類Java
- Java學習筆記之I/O流(讀取壓縮檔案以及壓縮檔案)Java筆記
- .NET 壓縮/解壓檔案
- gulp壓縮檔案
- aix 檔案的壓縮與解壓縮AI
- 電腦怎麼壓縮檔案 檔案壓縮方法詳解
- java 壓縮(解壓)檔案或者資料夾工具類Java
- Linux中檔案的壓縮和解壓縮Linux
- Mac壓縮檔案怎麼加密?BetterZip加密Word壓縮檔案教程Mac加密
- Ubuntu 壓縮檔案命令Ubuntu
- c#壓縮檔案C#
- Linux 檔案壓縮Linux
- HTTP 之 檔案壓縮HTTP
- WindowsApi 解壓縮檔案WindowsAPI
- 使用gzip壓縮檔案
- cpio檔案解壓縮
- Java實現檔案壓縮與解壓[zip格式,gzip格式]Java
- java實現zip壓縮檔案/資料夾Java
- linux下的檔案的壓縮和解壓縮Linux
- linux檔案壓縮和解壓命令Linux
- 常見檔案解壓和壓縮
- C# 檔案流壓縮解壓C#
- JAVA壓縮和解壓縮Java
- 將bmp檔案壓縮為jpg檔案
- 使用Java API進行tar.gz檔案及資料夾壓縮解壓縮JavaAPI
- 檔案的壓縮與解壓縮zz--linuxLinux
- node ~ zip壓縮 && 檔案加密加密
- C# 壓縮PDF檔案C#
- C# 建立壓縮檔案C#
- ZipArchive解壓縮zip檔案Hive
- 檔案打包與解壓縮
- linux 壓縮分解檔案Linux