要在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: 使用GZIPInputStream
将FileInputStream
包装起来,以便读取压缩的数据。
InputStreamReader和BufferedReader: 使用InputStreamReader
将字节流转换为字符流,再使用BufferedReader
读取文本行。
读取文件内容: 使用BufferedReader
的readLine()
方法逐行读取解压缩后的文件内容,并输出到控制台。