日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java编程笔记18 文件压缩与解压缩

發(fā)布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java编程笔记18 文件压缩与解压缩 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在java中,主要是利用ZipEntry,ZipInputStream和ZipOutputStream來實現zip數據壓縮方式的編程方法,

構造方法摘要
ZipEntry(String?name)
??????????使用指定名稱創(chuàng)建新的 ZIP 條目。
構造方法摘要
ZipInputStream(InputStream?in)
??????????創(chuàng)建新的 ZIP 輸入流。
構造方法摘要
ZipOutputStream(OutputStream?out)
??????????創(chuàng)建新的 ZIP 輸出流。

ZipInputStream的主要方法

ZipEntrygetNextEntry()
??????????讀取下一個 ZIP 文件條目并將流定位到該條目數據的開始處。
?voidcloseEntry()
??????????關閉當前 ZIP 條目并定位流以讀取下一個條目。

壓縮測試程序:

package com.book.ch09.file;import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream;public class CompressFile {public static void addFile(ZipOutputStream zipOutput, File file) throws IOException{System.out.println("正在添加文件:" + file.getAbsolutePath());// 每個壓縮對象都為一個 ZipEntry 實例。ZipEntry zipEntry = new ZipEntry(file.getName());// 將這個實例放入壓縮文件中zipOutput.putNextEntry(zipEntry);// 讀取文件內容FileInputStream ins = new FileInputStream(file);byte[] tmp = new byte[1024];int len = 0;while((len = ins.read(tmp)) != -1){zipOutput.write(tmp, 0, len);}ins.close();// 關閉當前的 ZipEntry 實例zipOutput.closeEntry();}public static void main(String[] args) throws IOException{File sourceFolder = new File("D:\\常用軟件");File targetFile = new File("D:\\zip_test.zip");// 使用 ZipOutputStream 創(chuàng)建壓縮文件ZipOutputStream zipOutput = new ZipOutputStream(new FileOutputStream(targetFile));// 列出該文件夾下所有的文件File[] subFiles = sourceFolder.listFiles(new FileFilter(){public boolean accept(File pathname) {if(pathname.isFile()) return true;return false;}});System.out.println("\r\n文件壓縮開始:" +sourceFolder.getAbsolutePath()+"\n\n");for(int i=0; i<subFiles.length; i++){addFile(zipOutput, subFiles[i]);}zipOutput.close();System.out.println("\r\n文件壓縮完成:" + targetFile.getAbsolutePath());}}

運行結果:


文件壓縮開始:D:\常用軟件


正在添加文件:D:\常用軟件\apache_2.2.4-win32-x86-no_ssl.zip
正在添加文件:D:\常用軟件\CAJViewer7.0.zip
正在添加文件:D:\常用軟件\CCleaner.rar
正在添加文件:D:\常用軟件\CTeX_2.8.0.125.exe
正在添加文件:D:\常用軟件\download
正在添加文件:D:\常用軟件\DUBA2008_down_31_4306.exe
正在添加文件:D:\常用軟件\DZH_INTERNET_V560w.exe
正在添加文件:D:\常用軟件\EasyRecoveryPro-v6.20.rar
正在添加文件:D:\常用軟件\FinalData-v2.01.rar
正在添加文件:D:\常用軟件\FirefoxChinaEdition 2010.12.exe
正在添加文件:D:\常用軟件\FirefoxChinaEdition-latest.exe
正在添加文件:D:\常用軟件\fxalendar.exe
............

............


文件壓縮完成:D:\zip_test.zip

解壓縮:

package com.book.ch09.file;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream;public class UncompressFile {static int count = 0;public static void extractFile(File path, ZipInputStream zipIns, ZipEntry zipEntry) throws IOException{File file = new File(path, zipEntry.getName());System.out.println("正在釋放文件:" + file.getAbsolutePath());FileOutputStream ous = new FileOutputStream(file);byte[] tmp = new byte[1024];int len = 0;while((len = zipIns.read(tmp)) != -1){ous.write(tmp, 0, len);}ous.close();zipIns.closeEntry();count++;}public static void main(String[] args) throws IOException{File sourceZipFile = new File("c:\\zip_test.zip");File targetFolder = new File("C:\\zip_test");targetFolder.mkdir();ZipInputStream zipIns = new ZipInputStream(new FileInputStream(sourceZipFile));ZipEntry zipEntry = zipIns.getNextEntry();while(zipEntry != null){extractFile(targetFolder, zipIns, zipEntry);zipEntry = zipIns.getNextEntry();}zipIns.close();System.out.println("\r\n文件釋放完成。" + count + " 個文件被釋放。");}} 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java编程笔记18 文件压缩与解压缩的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。