Java實(shí)現(xiàn)多文件壓縮打包的方法
本文實(shí)例講述了Java實(shí)現(xiàn)多文件壓縮打包的方法。分享給大家供大家參考,具體如下:
package com.biao.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
public class TestZIP {
/**
* 功能:壓縮多個(gè)文件成一個(gè)zip文件
* @param srcfile:源文件列表
* @param zipfile:壓縮后的文件
*/
public static void zipFiles(File[] srcfile,File zipfile){
byte[] buf=new byte[1024];
try {
//ZipOutputStream類(lèi):完成文件或文件夾的壓縮
ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipfile));
for(int i=0;i<srcfile.length;i++){
FileInputStream in=new FileInputStream(srcfile[i]);
out.putNextEntry(new ZipEntry(srcfile[i].getName()));
int len;
while((len=in.read(buf))>0){
out.write(buf,0,len);
}
out.closeEntry();
in.close();
}
out.close();
System.out.println("壓縮完成.");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 功能:解壓縮
* @param zipfile:需要解壓縮的文件
* @param descDir:解壓后的目標(biāo)目錄
*/
public static void unZipFiles(File zipfile,String descDir){
try {
ZipFile zf=new ZipFile(zipfile);
for(Enumeration entries=zf.entries();entries.hasMoreElements();){
ZipEntry entry=(ZipEntry) entries.nextElement();
String zipEntryName=entry.getName();
InputStream in=zf.getInputStream(entry);
OutputStream out=new FileOutputStream(descDir+zipEntryName);
byte[] buf1=new byte[1024];
int len;
while((len=in.read(buf1))>0){
out.write(buf1,0,len);
}
in.close();
out.close();
System.out.println("解壓縮完成.");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**功能:
* @param args
*/
public static void main(String[] args) {
//2個(gè)源文件
File f1=new File("D:\\workspace\\flexTest\\src\\com\\biao\\test\\abc.txt");
File f2=new File("D:\\workspace\\flexTest\\src\\com\\biao\\test\\test.zip");
File[] srcfile={f1,f2};
//壓縮后的文件
File zipfile=new File("D:\\workspace\\flexTest\\src\\com\\biao\\test\\biao.zip");
//TestZIP.zipFiles(srcfile, zipfile);
//需要解壓縮的文件
File file=new File("D:\\workspace\\flexTest\\src\\com\\biao\\test\\biao.zip");
//解壓后的目標(biāo)目錄
String dir="D:\\workspace\\flexTest\\src\\com\\biao\\test\\";
TestZIP.unZipFiles(file, dir);
}
}
更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java文件與目錄操作技巧匯總》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
java 中的static關(guān)鍵字和final關(guān)鍵字的不同之處
java 中的static關(guān)鍵字和final關(guān)鍵字的不同之處,需要的朋友可以參考一下2013-03-03
Java三個(gè)類(lèi)加載器及它們的相互關(guān)系
Java在需要使用類(lèi)別的時(shí)候,才會(huì)將類(lèi)別加載,Java的類(lèi)別載入是由類(lèi)別載入器(Class loader)來(lái)達(dá)到的,預(yù)設(shè)上,在程序啟動(dòng)之后,主要會(huì)有三個(gè)類(lèi)別加載器,文中詳細(xì)介紹了這三個(gè)類(lèi)加載器,需要的朋友可以參考下2021-06-06
基于Java的界面開(kāi)發(fā)詳細(xì)步驟(用戶(hù)注冊(cè)登錄)
通過(guò)一段時(shí)間Java Web的學(xué)習(xí),寫(xiě)一個(gè)簡(jiǎn)單的注冊(cè)登陸界面來(lái)做個(gè)總結(jié),這篇文章主要給大家介紹了基于Java的界面開(kāi)發(fā)(用戶(hù)注冊(cè)登錄)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
配置了jdk的環(huán)境idea卻提示找不到j(luò)dk解決辦法
在使用Java編程語(yǔ)言進(jìn)行開(kāi)發(fā)時(shí),IDEA是一個(gè)非常流行和強(qiáng)大的集成開(kāi)發(fā)環(huán)境,這篇文章主要給大家介紹了關(guān)于配置了jdk的環(huán)境idea卻提示找不到j(luò)dk的解決辦法,需要的朋友可以參考下2023-12-12
Spring boot實(shí)現(xiàn)熱部署的兩種方式詳解
這篇文章主要介紹了Spring boot實(shí)現(xiàn)熱部署的兩種方式,這兩種方法分別是使用 Spring Loaded和使用spring-boot-devtools進(jìn)行熱部署,文中給出了詳細(xì)示例代碼和介紹,需要的朋友可以參考學(xué)習(xí),下面來(lái)一起看看吧。2017-04-04
詳述 DB2 分頁(yè)查詢(xún)及 Java 實(shí)現(xiàn)的示例
本篇文章主要介紹了詳述 DB2 分頁(yè)查詢(xún)及 Java 實(shí)現(xiàn)的示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
spring?boot?2.x靜態(tài)資源會(huì)被攔截器攔截的原因分析及解決
這篇文章主要介紹了spring?boot?2.x靜態(tài)資源會(huì)被攔截器攔截的原因分析及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01

