.Gz biçiminde bir dosyam var. Bu dosyayı okumak için java sınıfı GZIPInputStream'dir. Ancak, bu sınıf BufferedReader java sınıfını genişletmez. Sonuç olarak, dosyayı satır satır okuyamıyorum. Bunun gibi bir şeye ihtiyacım var
reader = new MyGZInputStream( some constructor of GZInputStream)
reader.readLine()...
Java'nın Reader veya BufferedReader sınıfını genişleten ve değişkenlerinden biri olarak GZIPInputStream kullanan sınıfımı oluşturmayı düşündüm.
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);
}
}
Ama bu kullandığım zaman çalışmıyor
BufferedReader in = new BufferedReader(
new MyGZFilReader("F:/gawiki-20090614-stub-meta-history.xml.gz"));
System.out.println(in.readLine());
Birisi nasıl devam edileceğini tavsiye edebilir ..