Java 使用GZIP格式对文件进行压缩和解压

Java 使用GZIP格式对文件进行压缩和解压

java.util.zip包提供了压缩和解压文件内容的类。在Java中提供了FileInputStream、FileOutputStream和GZIPOOutputStream类来压缩和解压文件。

使用GZIPOutputStream压缩文件

程序中使用的方法

  1. read(): 读取一个字节的数据。存在于FileInputStream中。
int read()
  1. write(): 写入一个字节的数据,呈现在FileOutputStream中。
void write(int b)

在这个例子中,我们在 “GeeksforGeeks “文件夹下的 /home/saket/Desktop/GeeksforGeeks/compress.java 驱动器中有一个文本文件,我们在同一文件夹中压缩并生成GZip文件。

在java中使用GZIP格式对文件进行压缩和解压

// Java program to compress a File
// using GZIPOutputStream class
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;
  
public class GeeksForGeeks
{
    static final String OUTPUT_FILE
            = "/home/saket/Desktop/GeeksforGeeks/compress.gz";
    static final String INPUT_FILE
            = "/home/saket/Desktop//GeeksforGeeks/compress.java";
      
    static void compress()
    {
        byte[] buffer = new byte[1024];
        try
        {
            GZIPOutputStream os = 
                    new GZIPOutputStream(new FileOutputStream(OUTPUT_FILE));
                      
            FileInputStream in =
                    new FileInputStream(INPUT_FILE);
              
            int totalSize;
            while((totalSize = in.read(buffer)) > 0 )
            {
                os.write(buffer, 0, totalSize);
            }
              
            in.close();
            os.finish();
            os.close();
              
            System.out.println("File Successfully compressed");
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
          
    }
      
    public static void main (String[] args)
    {
        compress();
          
    }
}

输出:

File Successfully compressed

运行上述程序后,它将压缩compress.java文件:

在java中使用GZIP格式对文件进行压缩和解压

使用GZIPOutputStream解压文件

// Java program to illustrate 
// Decompressing a File using GZIPOutputStream
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
  
class GeeksForGeeks
{
    static final String INPUT_FILE 
            = "/home/saket/Desktop/GeeksforGeeks/compress.gz";
    static final String OUTPUT_FILE 
            = "/home/saket/Desktop//GeeksforGeeks/decompress.java";
      
    static void decompress()
    {
        byte[] buffer = new byte[1024];
        try
        {
            GZIPInputStream is = 
                    new GZIPInputStream(new FileInputStream(INPUT_FILE));
                      
            FileOutputStream out =
                    new FileOutputStream(OUTPUT_FILE);
              
            int totalSize;
            while((totalSize = is.read(buffer)) > 0 )
            {
                out.write(buffer, 0, totalSize);
            }
              
            out.close();
            is.close();
              
            System.out.println("File Successfully decompressed");
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
          
    }
      
    public static void main (String[] args)
    {
        decompress();
          
    }
}

输出:

File Successfully decompressed

编译后的当前状态。

在java中使用GZIP格式对文件进行压缩和解压

注意: 这里decom.java包含上述代码。

运行上述程序后,它将解压compress.gz,并创建一个名为 decompress.java 的文件。

在java中使用GZIP格式对文件进行压缩和解压

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程