要在Java中读取.gz文件,可以使用GZIPInputStream类来解压缩文件流,然后通过标准的输入流来读取解压缩后的数据。

package test;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.zip.GZIPInputStream;

public class GzipFileReader {
    public static void main(String[] args) {
        // 检查是否提供了文件路径
        if (args.length != 1) {
            System.out.println("Usage: java GzipFileReader <file.gz>");
            return;
        }

        String filePath = args[0];

        // 使用GZIPInputStream读取.gz文件
        try (
            FileInputStream fileInputStream = new FileInputStream(filePath);
            GZIPInputStream gzipInputStream = new GZIPInputStream(fileInputStream);
            InputStreamReader inputStreamReader = new InputStreamReader(gzipInputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader)
        ) {
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

注:

FileInputStream: 使用FileInputStream打开指定的.gz文件。

GZIPInputStream: 使用GZIPInputStreamFileInputStream包装起来,以便读取压缩的数据。

InputStreamReader和BufferedReader: 使用InputStreamReader将字节流转换为字符流,再使用BufferedReader读取文本行。

读取文件内容: 使用BufferedReaderreadLine()方法逐行读取解压缩后的文件内容,并输出到控制台。

更多推荐