通過java api實現(xiàn)解壓縮zip示例
通過java api實現(xiàn)zip壓縮格式的壓縮與解壓縮
package com.hongyuan.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
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 ZipTest {
public static void main(String[] args) throws IOException {
unZip("bootstrap.zip");
zip("bootstrap_01.zip","bootstrap/css/bootstrap.css","bootstrap/css/bootstrap.min.css");
}
public static void unZip(String fileName) throws IOException{
//獲取壓縮文件對象
ZipFile zf = new ZipFile(fileName);
//遍歷文件條目
Enumeration<? extends ZipEntry> items = zf.entries();
while (items.hasMoreElements()) {
ZipEntry item = items.nextElement();
String filePath = zf.getName().substring(0,
zf.getName().lastIndexOf("."))
+ File.separator + item.getName();
File fileDir = new File(filePath.substring(0,
filePath.lastIndexOf("/")));
if (!fileDir.exists()) {
fileDir.mkdirs();
}
//從流中讀取文件
OutputStream out = new FileOutputStream(filePath);
InputStream in = zf.getInputStream(item);
byte[] temp = new byte[1024];
int len = 0;
while ((len = in.read(temp)) > 0) {
out.write(temp, 0, len);
}
in.close();
out.close();
}
zf.close();
}
public static void zip(String fileName,String... files) throws IOException{
//構(gòu)造壓縮文件輸出流
ZipOutputStream zos=new ZipOutputStream(new FileOutputStream(fileName));
for(int i=0,size=files.length;i<size;i++){
//創(chuàng)建壓縮實體
ZipEntry entry=new ZipEntry(files[i].substring(files[i].lastIndexOf("/")+1));
zos.putNextEntry(entry);
//將文件內(nèi)容輸出到壓縮流中
InputStream is=new FileInputStream(files[i]);
int count=0;
byte[] buffer=new byte[1024];
while((count=is.read(buffer))>=0){
zos.write(buffer, 0, count);
}
zos.flush();
zos.closeEntry();
is.close();
}
}
}

相關(guān)文章
java 實現(xiàn)下壓棧的操作(能動態(tài)調(diào)整數(shù)組大小)
這篇文章主要介紹了java 實現(xiàn)下壓棧的操作(能動態(tài)調(diào)整數(shù)組大小),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02java實現(xiàn)阿拉伯數(shù)字轉(zhuǎn)漢字數(shù)字
這篇文章主要為大家詳細介紹了java實現(xiàn)阿拉伯數(shù)字轉(zhuǎn)換為漢字數(shù)字源代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04Spring Cache的基本使用與實現(xiàn)原理詳解
緩存是實際工作中非經(jīng)常常使用的一種提高性能的方法, 我們會在很多場景下來使用緩存。下面這篇文章主要給大家介紹了關(guān)于Spring Cache的基本使用與實現(xiàn)原理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2018-05-05Spring整合Quartz實現(xiàn)定時任務(wù)調(diào)度的方法
下面小編就為大家?guī)硪黄猄pring整合Quartz實現(xiàn)定時任務(wù)調(diào)度的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11SpringBoot中實現(xiàn)數(shù)據(jù)字典的示例代碼
這篇文章主要介紹了SpringBoot中實現(xiàn)數(shù)據(jù)字典的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09