當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java GZIPOutputStream用法及代碼示例


java.util.zip提供類來壓縮和解壓縮文件內容。 Java 中提供了 FileInputStream、FileOutputStream 和 GZIPOutputStream 類來壓縮和解壓縮文件。 GZIPOutputStream 類對於將壓縮數據寫入GZIP 文件格式。但是,GZIP 不是 zip 工具,它僅用於將文件壓縮為 “.gz” 格式,而不是將多個文件壓縮為單個存檔。

構造函數和執行的相應操作如下:

  • GZIPOutputStream(輸出流輸出):創建具有默認緩衝區大小的新輸出流
  • GZIPOutputStream(OutputStream out, 布爾值syncFlush):創建具有默認緩衝區大小和指定刷新模式的新輸出流。
  • GZIPOutputStream(輸出流輸出,int大小):創建具有指定緩衝區大小的新輸出流
  • GZIPOutputStream(輸出流輸出,int大小,布爾syncFlush):創建具有指定緩衝區大小和刷新模式的新輸出流

讓我們討論一下涉及到的重要方法,如下:

  • 無效寫入(字節[] buf,int關閉,intlen): 將字節數組寫入壓縮輸出流。

參數:它需要3個參數,分別如下:

  • buf:要寫入的數據
  • off:數據的起始偏移量
  • len:數據長度

異常:IOException:如果發生 I/O 錯誤

  • Note: finish() 方法完成將壓縮數據寫入輸出流,而無需關閉底層流。

實現:我們在D:/Myfolder/New.txt中有一個文本文件,在這個文本文件中寫入“Hello World”。我們正在壓縮此文本文件 (New.txt) 並在同一文件夾中生成 GZip 文件。也如圖所示如下:

例子

Java


// Java Program to Illustrate GZIPOutputStream class
// Importing required classes
import java.io.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
// Main class
class GFG {
    // Main driver method
    public static void main(String[] args) throws Exception
    {
        // Existing file path
        String file = "D:/Myfolder/New.txt";
       
        // Path where we want the compression of the file
        String gzipFile = "D:/Myfolder/compress.gz";
        // Reading the text file
        FileInputStream fis = new FileInputStream(file);
       
        // Creating the compressed file
        FileOutputStream fos
            = new FileOutputStream(gzipFile);
       
        // Object of Fileoutstream passed
        GZIPOutputStream gzipOS = new GZIPOutputStream(fos);
        byte[] buffer = new byte[1024];
        int len;
        // Writing the data to file until -1 reached(End of
        // file)
        while ((len = fis.read(buffer)) != -1) {
            gzipOS.write(buffer, 0, len);
        }
        // Closing the resources
        // using standard close() method
        gzipOS.close();
        fos.close();
        fis.close();
        // Display message on the console in order to
        // illustrate successful execution of the program
        System.out.println("File successfully compressed");
    }
}

輸出:

File successfully compressed

運行上述程序後,它將壓縮生成的文件,通過與上麵的采樣快照進行比較,可以從下麵的快照中描繪出該文件。



相關用法


注:本文由純淨天空篩選整理自karangarg218大神的英文原創作品 GZIPOutputStream Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。