免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Java中zip的壓縮和解壓縮

在Java中可以使用ZipOutputStream和ZipInputStream來(lái)實(shí)現(xiàn)zip的壓縮和解壓縮操作,另外使用FileSystem也可以用來(lái)實(shí)現(xiàn)zip的解壓縮,下面將介紹這幾種方式,直接上代碼。

zip壓縮

待壓縮文件目錄結(jié)構(gòu):

每個(gè)zip文件項(xiàng)都要對(duì)應(yīng)一個(gè)ZipEntry,然后通過(guò)ZipOutputStream的putNextEntry方法開(kāi)始寫入一個(gè)新的zip文件項(xiàng),將文件數(shù)據(jù)發(fā)送到zip輸出流中,完成后再調(diào)用closeEntry方法。

@Testpublic void testCompressByZip() {try (//指定壓縮完成后zip文件的存儲(chǔ)路徑ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream("F:\\myFavorites.zip"))){//待壓縮文件/目錄所在的目錄File fileFolder = new File("F:\\我的收藏");//獲取目錄下的所有文件File[] files = fileFolder.listFiles();ZipEntry zipEntry;byte[] byteArray;int len;//遍歷目錄下的所有文件/目錄,并將它們添加到壓縮文件中for (File file : files) {//一個(gè)ZipEntry對(duì)應(yīng)壓縮文件中的一項(xiàng)zipEntry = new ZipEntry(file.getName());zipOutputStream.putNextEntry(zipEntry);try (FileInputStream in = new FileInputStream(file)) {byteArray = new byte[1024];while ((len = in.read(byteArray)) != -1) {zipOutputStream.write(byteArray, 0, len);}} catch (IOException ex) {ex.printStackTrace();}zipOutputStream.closeEntry();}} catch (IOException ex) {ex.printStackTrace();}}

壓縮結(jié)果:

zip解壓縮

遍歷zip文件中的所有項(xiàng),并獲取對(duì)應(yīng)項(xiàng)的輸入流,然后通過(guò)FileOutputStream輸出到指定目錄中。

@Testpublic void testDecompressByZip() {try (//指定需要解壓縮的zip文件ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream("F:\\myFavorites.zip"))){ZipEntry zipEntry;byte[] byteArray;int len;//遍歷zip文件中的所有項(xiàng),并逐個(gè)解壓到指定的目錄中while ((zipEntry = zipInputStream.getNextEntry()) != null) {try (FileOutputStream fileOutputStream = new FileOutputStream("F:\\我的解壓目錄\\" + zipEntry.getName())) {byteArray = new byte[1024];while ((len = zipInputStream.read(byteArray)) != -1) {fileOutputStream.write(byteArray, 0, len);}} catch (IOException ex) {ex.printStackTrace();}}} catch (IOException ex) {ex.printStackTrace();}}

解壓縮結(jié)果:

使用FileSystem解壓縮

  1. 建立一個(gè)文件系統(tǒng),包含zip文件中的所有項(xiàng)。
  2. 遍歷zip文件中的所有項(xiàng),通過(guò)文件訪問(wèn)器SimpleFileVisitor將每個(gè)項(xiàng)復(fù)制到指定目錄中。
@Testpublic void testDecompressByZip2(){try {//將壓縮文件作為一個(gè)文件系統(tǒng)訪問(wèn)FileSystem fileSystem = FileSystems.newFileSystem(Paths.get("F:\\myFavorites.zip"), null);//遍歷壓縮文件中的內(nèi)容,并使用文件訪問(wèn)器訪問(wèn)所有內(nèi)容Files.walkFileTree(fileSystem.getPath("/"), new SimpleFileVisitor<Path>() {@Overridepublic FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {System.out.println("訪問(wèn)目錄中文件時(shí)調(diào)用");//將文件解壓到指定目錄Files.copy(file, new FileOutputStream("F:\\我的解壓目錄\\" + file.getName(file.getNameCount() - 1)));return FileVisitResult.CONTINUE;}@Overridepublic FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {System.out.println("訪問(wèn)目錄中文件之前調(diào)用");return FileVisitResult.CONTINUE;}@Overridepublic FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {System.out.println("訪問(wèn)目錄中文件失敗時(shí)調(diào)用");return FileVisitResult.SKIP_SUBTREE;}@Overridepublic FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {System.out.println("訪問(wèn)目錄中的文件及其所有后代之后調(diào)用");return FileVisitResult.CONTINUE;}});} catch (IOException ex) {ex.printStackTrace();}}
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
java壓縮和解壓縮Zip、Jar、Gzip文件
zip
何應(yīng)用java.util.zip包現(xiàn)數(shù)據(jù)壓縮與解壓
利用JAVA API函數(shù)實(shí)現(xiàn)數(shù)據(jù)的壓縮與解壓縮(3)
如何將文件打成zip包并下載
使用Java?API壓縮和?解壓縮數(shù)據(jù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服