日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java.util.zip_[Java 基础] 使用java.util.zip包压缩和解压缩文件

發布時間:2025/3/11 java 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java.util.zip_[Java 基础] 使用java.util.zip包压缩和解压缩文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java API中的import java.util.zip.*;包下包含了Java對于壓縮文件的所有相關操作。

我們可以使用該包中的方法,結合IO中的相關知識,進行文件的壓縮和解壓縮相關操作。

ZipFile

java中的每一個壓縮文件都是可以使用ZipFile來進行表示的。

File file = new File("F:/zippath.zip");

ZipFile zipFile= newZipFile(file);

System.out.println("壓縮文件的名稱為:" + zipFile.getName());

壓縮單個文件

/**壓縮單個文件*/

public static voidZipFile(String filepath ,String zippath) {try{

File file= newFile(filepath);

File zipFile= newFile(zippath);

InputStream input= newFileInputStream(file);

ZipOutputStream zipOut= new ZipOutputStream(newFileOutputStream(zipFile));

zipOut.putNextEntry(newZipEntry(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 voidZipMultiFile(String filepath ,String zippath) {try{

File file= new File(filepath);//要被壓縮的文件夾

File zipFile = newFile(zippath);

InputStream input= null;

ZipOutputStream zipOut= new ZipOutputStream(newFileOutputStream(zipFile));if(file.isDirectory()){

File[] files=file.listFiles();for(int i = 0; i < files.length; ++i){

input= newFileInputStream(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 voidZipContraFile(String zippath ,String outfilepath ,String filename) {try{

File file= new File(zippath);//壓縮文件路徑和文件名

File outFile = new File(outfilepath);//解壓后路徑和文件名

ZipFile zipFile = newZipFile(file);

ZipEntry entry= zipFile.getEntry(filename);//所解壓的文件名

InputStream input =zipFile.getInputStream(entry);

OutputStream output= newFileOutputStream(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 voidZipContraMultiFile(String zippath ,String outzippath){try{

File file= newFile(zippath);

File outFile= null;

ZipFile zipFile= newZipFile(file);

ZipInputStream zipInput= new ZipInputStream(newFileInputStream(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= newFileOutputStream(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:/");

總結

以上是生活随笔為你收集整理的java.util.zip_[Java 基础] 使用java.util.zip包压缩和解压缩文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。