当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。