Java如何不解壓讀取.zip的文件內(nèi)容
前言
最近項(xiàng)目中需要拿到.zip文件中的文件內(nèi)容,之前的做法是先解壓到某個(gè)目錄然后在對(duì)里面的文件進(jìn)行處理,后面發(fā)現(xiàn)其實(shí)可以不用這么做,jdk中自帶的包就可以解決這個(gè)問(wèn)題。
示例如下:
public static void main(String[] args) throws IOException {
//獲取文件輸入流
FileInputStream input = new FileInputStream("C:\\Users\\admin\\Desktop\\test.zip");
ZipInputStream zipInputStream = new ZipInputStream(new BufferedInputStream(input), Charset.forName("GBK"));
ZipEntry ze = null;
//循環(huán)遍歷
while ((ze = zipInputStream.getNextEntry()) != null) {
System.out.println("文件名:" + ze.getName() + " 文件大?。? + ze.getSize() + " bytes");
System.out.println("文件內(nèi)容:");
//讀取
BufferedReader br = new BufferedReader(new InputStreamReader(zipInputStream,Charset.forName("GBK")));
String line;
//內(nèi)容不為空,輸出
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
//一定記得關(guān)閉流
zipInputStream.closeEntry();
input.close();
}

總結(jié)
到此這篇關(guān)于Java如何不解壓讀取.zip文件內(nèi)容的文章就介紹到這了,更多相關(guān)Java不解壓讀取.zip內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談java對(duì)象結(jié)構(gòu) 對(duì)象頭 Markword
這篇文章主要介紹了淺談java對(duì)象結(jié)構(gòu) 對(duì)象頭 Markword,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
Java不帶break將導(dǎo)致case穿透問(wèn)題
這篇文章主要介紹了Java不帶break將導(dǎo)致case穿透問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Spring中使用Async進(jìn)行異步功能開發(fā)實(shí)戰(zhàn)示例(大文件上傳為例)
本文以大文件上傳為例,首先講解在未進(jìn)行程序異步化時(shí),程序的運(yùn)行機(jī)制和具體表現(xiàn),然后講解如何進(jìn)行異步化的改造,讓程序進(jìn)行異步執(zhí)行,通過(guò)本文不僅能讓你掌握如何進(jìn)行Event的事件開發(fā),同時(shí)還能掌握在Spring中如何進(jìn)行異步開發(fā),熟悉@Async的具體用法,感興趣的朋友一起看看吧2024-08-08
springboot整合mybatis將sql打印到日志的實(shí)例詳解
這篇文章主要介紹了springboot整合mybatis將sql打印到日志的實(shí)例詳解,需要的朋友可以參考下2017-12-12
用StopWatch優(yōu)雅替代currentTimeMillis計(jì)算程序執(zhí)行耗時(shí)
別再用System.currentTimeMillis()計(jì)算程序執(zhí)行耗時(shí)了,擁抱StopWatch優(yōu)雅來(lái)優(yōu)雅的計(jì)算,代碼更簡(jiǎn)潔效率更高,本文帶你了解StopWatch的使用2021-09-09

