我有一個.gz格式的文件。讀取這個文件的java類是GZIPInputStream。 但是,這個類沒有擴展java的BufferedReader類。因此,我無法逐行讀取文件。我需要的是這樣的GZIPInputStream逐行讀取
reader = new MyGZInputStream(some constructor of GZInputStream)
reader.readLine()...
不過,我覺得我的創建類擴展了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());
可有人建議如何進行工作..
看看這個鏈接http://stackoverflow.com/q/6717165/779408。在那裏表示壓縮和解壓縮方法。 – breceivemail 2013-01-15 10:41:39
爲了愛這個世界上所有的善良和正確的事物,以及任何開發者的理智,即使是遠程編碼也是如此......請注意編碼@erickson要點!他是唯一指出這一點的答案,這讓我想哭。 – James 2013-02-07 20:59:17