91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Java中使用GZIPOutputStream流壓縮文件

發布時間:2021-02-18 14:35:31 來源:億速云 閱讀:928 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關如何在Java中使用GZIPOutputStream流壓縮文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

public static void main(String[] args) throws Exception{
    
    //壓縮文件
    File src = new File("e:/xx/aa.txt");
    File zipFile = new File("e:/xx/a.zip");
    FileOutputStream fos = new FileOutputStream(zipFile);
    ZipOutputStream zos = new ZipOutputStream(fos);
    BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src));
    ZipEntry entry = new ZipEntry( src.getName());
    zos.putNextEntry(entry);
    int count;
    byte[] buf = new byte[1024];
    while ((count = bis.read(buf)) != -1) {
      zos.write(buf, 0, count);
    }
    bis.close();
    //fos.close();
    zos.close();//
    }

壓縮的步驟是:

src將要壓縮的文件,zipFile 壓縮后的文件,壓縮流套接zipFile,然后將src文件寫入zipFile,其中ZipEntry中放入的源文件的當前名稱,putNextEntry是將源文件的當前名稱定位到條目數據的開始處。

補充:Java ZIP壓縮輸入輸出流

ZIP是一種較為常見的壓縮形式,在Java中要想實現ZIP的壓縮需要導入java.util.zip包,可以使用此包中的ZipFile、ZipOutputStream、ZipInputStream、ZipEntry幾個類完成。

ZipOutputStream類的常用方法

如何在Java中使用GZIPOutputStream流壓縮文件

ZipInputStream類的常用方法

如何在Java中使用GZIPOutputStream流壓縮文件

在JAVA IO中,不僅可以實現ZIP壓縮格式的輸入、輸出,也可以實現JAR及GZIP文件格式的壓縮:

1、JAR壓縮的支持類保存在java.util.jar包中,常用的類有 JarOutputStream(JAR壓縮輸出流)、JarInputStream(JAR壓縮輸入流)、JARFile(JAR文件)、JAREntry(JAR實體)

2、GZIP是用于UNIX系統的文件壓縮,在Linux中經常會使用到*.gz的文件,就是GZIP格式,GZIP壓縮的支持類保存在java.util.zip包中,常用的類有 GZIPOutputStream(GZIP壓縮輸出流)、GZIPInputStream(GZIP壓縮輸入流)

注意:

1、壓縮文件中的每一個壓縮實體都使用ZipEntry保存,一個壓縮文件中可能包含一個或多個ZipEntry對象。

2、在JAVA中可以進行zip、jar、gz三種格式的壓縮支持,操作流程基本上是一致的。

3、ZipOutputStream可以進行壓縮的輸出,但是輸出的位置不一定是文件。

4、ZipFile表示每一個壓縮文件,可以得到每一個壓縮實體的輸入流。

壓縮文件

import java.io.*;
import java.util.zip.*; 
public class MyZip { // 創建類
 private void zip(String zipFileName, File inputFile) throws Exception {
 ZipOutputStream out = new ZipOutputStream(new FileOutputStream(
  zipFileName)); // 創建ZipOutputStream類對象
 zip(out, inputFile, ""); // 調用方法
 System.out.println("壓縮中…"); // 輸出信息
 out.close(); // 將流關閉
 }
 
 private void zip(ZipOutputStream out, File f, String base)
  throws Exception { // 方法重載
 if (f.isDirectory()) { // 測試此抽象路徑名表示的文件是否是一個目錄
  File[] fl = f.listFiles(); // 獲取路徑數組
  out.putNextEntry(new ZipEntry(base + "/")); // 寫入此目錄的entry
  base = base.length() == 0 ? "" : base + "/"; // 判斷參數是否為空
  for (int i = 0; i < fl.length; i++) { // 循環遍歷數組中文件
  zip(out, fl[i], base + fl[i]);
  }
 } else {
  out.putNextEntry(new ZipEntry(base)); // 創建新的進入點
  // 創建FileInputStream對象
  FileInputStream in = new FileInputStream(f);
  int b; // 定義int型變量
  System.out.println(base);
  while ((b = in.read()) != -1) { // 如果沒有到達流的尾部
  out.write(b); // 將字節寫入當前ZIP條目
  }
  in.close(); // 關閉流
 }
 }
 
 public static void main(String[] temp) { // 主方法
 MyZip book = new MyZip(); // 創建本例對象
 try {
  // 調用方法,參數為壓縮后文件與要壓縮文件
  book.zip("hello.zip", new File("src"));
  System.out.println("壓縮完成"); // 輸出信息
 } catch (Exception ex) {
  ex.printStackTrace();
 }
 }
}

解壓文件

import java.io.*;
import java.util.zip.*;
 
public class Decompressing { // 創建文件
 public static void main(String[] temp) {
 ZipInputStream zin; // 創建ZipInputStream對象
 try { // try語句捕獲可能發生的異常
  zin = new ZipInputStream(new FileInputStream("hello.zip"));
  // 實例化對象,指明要進行解壓的文件
  ZipEntry entry = zin.getNextEntry(); // 獲取下一個ZipEntry
  while (((entry = zin.getNextEntry()) != null)
   && !entry.isDirectory()) {
  // 如果entry不為空,并不在同一目錄下
  File file = new File("d:\\" + entry.getName()); // 獲取文件目錄
  System.out.println(file);
  if (!file.exists()) { // 如果該文件不存在
   file.mkdirs();// 創建文件所在文件夾
   file.createNewFile(); // 創建文件
  }
  zin.closeEntry(); // 關閉當前entry
  System.out.println(entry.getName() + "解壓成功");
  }
  zin.close(); // 關閉流
 } catch (Exception e) {
  e.printStackTrace();
 }
 }
}

看完上述內容,你們對如何在Java中使用GZIPOutputStream流壓縮文件有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

晋江市| 且末县| 高雄市| 启东市| 岗巴县| 佛坪县| 营口市| 深圳市| 遂川县| 手游| 卓尼县| 和政县| 平江县| 天镇县| 察哈| 枝江市| 昭苏县| 乡宁县| 沂源县| 德钦县| 景东| 灵璧县| 太和县| 漳平市| 德江县| 阳朔县| 塘沽区| 冀州市| 江源县| 麦盖提县| 贵阳市| 京山县| 宿迁市| 绥中县| 西城区| 延长县| 固始县| 盘山县| 平南县| 呼图壁县| 兴化市|