壓縮流 解壓縮流 了解一下

2021-08-21 17:08:13 字數 2019 閱讀 2354

1.壓縮單個檔案

思路:需要壓縮的檔案a

壓縮後壓縮包b存放位置,及名字

用fileinputstream 接a

用zipoutputstream 接b

zipoutputstream.putnextentry(new zipentry("newzipone.txt")) 對準乙個壓縮包中將要產生的 (壓縮體 zipentry)

while ((temp = input.read()) != -1)   //開始將檔案壓縮進對應的 (壓縮體上面已經定好)

**:

//壓縮單個檔案

public class iotest

input.close();

zipout.close();

}}

對應位置如圖:

2.一次性壓縮多個檔案進壓縮包

思路:需要壓縮的資料夾 a ,裡面有三個檔案

壓縮後壓縮包b存放位置,及名字

用zipoutputstream 接b

file files = file.listfiles(); 得到資料夾下的檔案

通過迴圈進行第6,7,8步 ,將資料夾下檔案乙個個壓縮進壓縮包

用fileinputstream 接files[i]

zipoutputstream.putnextentry(new zipentry("newzipone.txt")) 對準乙個壓縮包中將要產生的 (壓縮體 zipentry)

while ((temp = input.read()) != -1)   //開始將檔案壓縮進對應的 (壓縮體上面已經定好)

**:

//一次性壓縮多個檔案

public class iotest1

input.close();

}} zipout.close();

}}

對應位置如圖:

3.解壓縮(壓縮包只有乙個檔案)

**:

//解壓縮單個檔案

public class iotest2

input.close();

output.close();}}

位置如圖:

4.解壓縮(壓縮包含多個檔案)

思路:用 zipfile 類得到壓縮包 a

用zipinputstream得到 壓縮包的解壓縮流

通過 while ((entry = zipinput.getnextentry()) 得到壓縮包中各個壓縮體,進行4,5,6步

用zipfile.getinputstream( entry ) , 得到各個壓縮體的輸入流,用於讀取資料

定**壓縮後各壓縮體的存放

output = new fileoutputstream(outfile);  int temp = 0;  while ((temp = input.read()) != -1)

**:

//解壓縮多個檔案(壓縮包中含多個檔案)

public class iotest3

if (!outfile.exists())

input = zipfile.getinputstream(entry); //用 壓縮包檔案 開啟 壓縮體 的輸入流

output = new fileoutputstream(outfile);

int temp = 0;

while ((temp = input.read()) != -1)

input.close();

output.close();

} }}

壓縮 解壓縮流GZipStream

如果要在壓縮過程中檢查錯誤或要與其他作業系統所用程式共享壓縮資料,則要是用gzipstream類。gzipstream類包含是用gzip資料格式進行壓縮和解壓縮檔案的方法,該類不能用於解壓縮大於4gb的檔案。一 屬性 basestream 獲取對基礎流的引用。canread 獲取乙個值,該值指示流是...

linux下打包,壓縮,解壓縮

linux下最常用的打包程式就是tar了,使用tar程式打出來的包我們常稱為tar包,tar包檔案的命令通常都是以.tar結尾的。生成tar包後,就可以用其它的程式來進 行壓縮了,所以首先就來講講tar命令的基本用法 tar命令的選項有很多 用man tar可以檢視到 但常用的就那麼幾個選項,下面 ...

linux下的壓縮解壓縮

linux下最常用的打包程式就是tar了,使用tar程式打出來的包我們常稱為tar包 tar包檔案的命令通常都是以.tar結尾的。生成tar包後,就可以用其它的程式來進 行壓縮了,所以首先就來講講tar命令的基本用法 tar命令的選項有很多 用man tar可以檢視到 但常用的就那麼幾個選項,下面 ...