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:/");
相關文章
- zip壓縮和解壓縮
- 字串的壓縮和解壓縮字串
- 檔案壓縮和解壓縮
- linux壓縮和解壓縮命令Linux
- linux壓縮和解壓縮命令整理Linux
- 簡單的zip壓縮和解壓縮
- linux壓縮和解壓縮命令大全Linux
- Python實現壓縮和解壓縮Python
- Linux tar壓縮和解壓縮等命令Linux
- Linux中檔案的壓縮和解壓縮Linux
- 【Linux基礎】壓縮和解壓Linux
- 常用的壓縮和解壓命令案例
- linux下的檔案的壓縮和解壓縮Linux
- pigz更快的壓縮和解壓工具
- linux檔案壓縮和解壓命令Linux
- linux壓縮和解壓命令總結Linux
- zip壓縮檔案處理方案(Zip4j壓縮和解壓)
- Nginx網路壓縮 CSS壓縮 圖片壓縮 JSON壓縮NginxCSSJSON
- Java壓縮htmlJavaHTML
- 利用Java實現zip壓縮/解壓縮 (轉)Java
- pclzip壓縮檔案和解壓的多種示例
- C# 壓縮和解壓檔案(SharpZipLib)C#
- 強大且易於使用的壓縮和解壓縮軟體:Keka for MacMac
- linux壓縮解壓縮Linux
- JAVA基礎:利用Java實現zip壓縮解壓縮(轉)Java
- JS壓縮方法及批量壓縮JS
- aix 下壓縮與解壓縮AI
- tar 分卷壓縮&解壓縮命令
- AIX 上壓縮與解壓縮AI
- Java檔案壓縮Java
- Java使用Zip壓縮Java
- java 檔案壓縮Java
- 『學了就忘』Linux基礎命令 — 32、壓縮和解壓縮相關命令Linux
- 使用org.apache.tools.zip實現zip壓縮和解壓Apache
- linux下壓縮解壓縮命令Linux
- Linux壓縮及解壓縮命令Linux
- Linux tar分卷壓縮與解壓縮Linux
- aix 檔案的壓縮與解壓縮AI