JAVA壓縮和解壓縮
Java API中的import java.util.zip.*;包下包含了Java對於壓縮檔案的所有相關操作。
我們可以使用該包中的方法,結合IO中的相關知識,進行檔案的壓縮和解壓縮相關操作。
ZipFile
java中的每一個壓縮檔案都是可以使用ZipFile來進行表示的。
File file = new File("F:/zippath.zip");
ZipFile zipFile = new ZipFile(file);
System.out.println("壓縮檔案的名稱為:" + zipFile.getName());
壓縮單個檔案
/** 壓縮單個檔案*/
public static void ZipFile(String filepath ,String zippath) {
try {
File file = new File(filepath);
File zipFile = new File(zippath);
InputStream input = new FileInputStream(file);
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
zipOut.putNextEntry(new ZipEntry(file.getName()));
int temp = 0;
while((temp = input.read()) != -1){
zipOut.write(temp);
}
input.close();
zipOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
應用:
ZipFile("d:/hello.txt", "d:/hello.zip");
壓縮多個檔案(資料夾)
/** 一次性壓縮多個檔案,檔案存放至一個資料夾中*/
public static void ZipMultiFile(String filepath ,String zippath) {
try {
File file = new File(filepath);// 要被壓縮的資料夾
File zipFile = new File(zippath);
InputStream input = null;
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile));
if(file.isDirectory()){
File[] files = file.listFiles();
for(int i = 0; i < files.length; ++i){
input = new FileInputStream(files[i]);
zipOut.putNextEntry(new ZipEntry(file.getName() + File.separator + files[i].getName()));
int temp = 0;
while((temp = input.read()) != -1){
zipOut.write(temp);
}
input.close();
}
}
zipOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
應用:
ZipMultiFile("f:/uu", "f:/zippath.zip");
解壓縮單個檔案
/** 解壓縮(解壓縮單個檔案)*/
public static void ZipContraFile(String zippath ,String outfilepath ,String filename) {
try {
File file = new File(zippath);//壓縮檔案路徑和檔名
File outFile = new File(outfilepath);//解壓後路徑和檔名
ZipFile zipFile = new ZipFile(file);
ZipEntry entry = zipFile.getEntry(filename);//所解壓的檔名
InputStream input = zipFile.getInputStream(entry);
OutputStream output = new FileOutputStream(outFile);
int temp = 0;
while((temp = input.read()) != -1){
output.write(temp);
}
input.close();
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
應用:
ZipContraFile("d:/hello.zip","d:/eee.txt", "hello.txt");
解壓縮多個檔案
ZipInputStream類:
當我們需要解壓縮多個檔案的時候,ZipEntry就無法使用了。
如果想操作更加複雜的壓縮檔案,我們就必須使用ZipInputStream類。
/** 解壓縮(壓縮檔案中包含多個檔案)可代替上面的方法使用。
* ZipInputStream類
* 當我們需要解壓縮多個檔案的時候,ZipEntry就無法使用了,
* 如果想操作更加複雜的壓縮檔案,我們就必須使用ZipInputStream類
* */
public static void ZipContraMultiFile(String zippath ,String outzippath){
try {
File file = new File(zippath);
File outFile = null;
ZipFile zipFile = new ZipFile(file);
ZipInputStream zipInput = new ZipInputStream(new FileInputStream(file));
ZipEntry entry = null;
InputStream input = null;
OutputStream output = null;
while((entry = zipInput.getNextEntry()) != null){
System.out.println("解壓縮" + entry.getName() + "檔案");
outFile = new File(outzippath + File.separator + entry.getName());
if(!outFile.getParentFile().exists()){
outFile.getParentFile().mkdir();
}
if(!outFile.exists()){
outFile.createNewFile();
}
input = zipFile.getInputStream(entry);
output = new FileOutputStream(outFile);
int temp = 0;
while((temp = input.read()) != -1){
output.write(temp);
}
input.close();
output.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
應用:
ZipContraMultiFile("f:/zippath.zip", "d:/");
ZipContraMultiFile("d:/hello.zip", "d:/");
相關文章
- 檔案壓縮和解壓縮
- Python實現壓縮和解壓縮Python
- linux壓縮和解壓縮命令整理Linux
- Linux中檔案的壓縮和解壓縮Linux
- 【Linux基礎】壓縮和解壓Linux
- linux檔案壓縮和解壓命令Linux
- pigz更快的壓縮和解壓工具
- zip壓縮檔案處理方案(Zip4j壓縮和解壓)
- Nginx網路壓縮 CSS壓縮 圖片壓縮 JSON壓縮NginxCSSJSON
- 強大且易於使用的壓縮和解壓縮軟體:Keka for MacMac
- 『學了就忘』Linux基礎命令 — 32、壓縮和解壓縮相關命令Linux
- linux下壓縮解壓縮命令Linux
- JS壓縮方法及批量壓縮JS
- Linux tar分卷壓縮與解壓縮Linux
- Linux壓縮解壓Linux
- CentOS 壓縮解壓CentOS
- linux 高效壓縮工具之xz的壓縮解壓使用Linux
- 打包/壓縮
- Gzipped 壓縮
- linuxtar解壓和壓縮Linux
- linux分卷壓縮解壓Linux
- 壓縮包格式有哪些?壓縮包格式大全
- ppt怎麼壓縮,ppt壓縮的技巧分享
- 壓縮Word,一鍵實現Word文件壓縮
- 分卷壓縮怎麼解壓 快速解壓電腦分卷壓縮檔案方法
- Linux下的tar壓縮解壓縮命令詳解Linux
- Linux 常用的壓縮與解壓縮命令詳解Linux
- Linux打包壓縮解壓工具Linux
- .NET 壓縮/解壓檔案
- Keka for Mac(壓縮解壓工具)Mac
- Keka for Mac壓縮解壓工具Mac
- MyZip for mac解壓壓縮工具Mac
- phpstorm 壓縮 JSPHPORMJS
- 引數壓縮
- JavaScript 影像壓縮JavaScript
- Linux之壓縮Linux
- 狀態壓縮
- 壓縮錶轉非壓縮表(線上重定義)
- pdf怎麼壓縮,好用的pdf壓縮工具介紹