我有一个以 .gz 格式存储的文件。用于读取该文件的 Java 类是 GZIPInputStream。 然而,该类并没有扩展 Java 的 BufferedReader 类。因此,我无法按行读取文件内容。我需要像下面这样的东西:
reader = new MyGZInputStream( some constructor of GZInputStream)
reader.readLine()...
我想创建一个继承Java的Reader或BufferedReader类并使用GZIPInputStream作为其中一个变量的类。
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Reader;
import java.util.zip.GZIPInputStream;
public class MyGZFilReader extends Reader {
private GZIPInputStream gzipInputStream = null;
char[] buf = new char[1024];
@Override
public void close() throws IOException {
gzipInputStream.close();
}
public MyGZFilReader(String filename)
throws FileNotFoundException, IOException {
gzipInputStream = new GZIPInputStream(new FileInputStream(filename));
}
@Override
public int read(char[] cbuf, int off, int len) throws IOException {
// TODO Auto-generated method stub
return gzipInputStream.read((byte[])buf, off, len);
}
}
但是,当我使用它时,它不起作用。
BufferedReader in = new BufferedReader(
new MyGZFilReader("F:/gawiki-20090614-stub-meta-history.xml.gz"));
System.out.println(in.readLine());
请问有人能指导一下如何处理吗?