मेरे पास .gz प्रारूप में एक फ़ाइल है। इस फ़ाइल को पढ़ने के लिए जावा वर्ग GZIPInputStream है। हालाँकि, यह वर्ग जावा के बफ़रड्रेडर श्रेणी का विस्तार नहीं करता है। नतीजतन, मैं फ़ाइल लाइन को लाइन से पढ़ने में सक्षम नहीं हूं। मुझे कुछ ऐसा ही चाहिए
reader = new MyGZInputStream( some constructor of GZInputStream)
reader.readLine()...
हालांकि मैंने अपनी कक्षा बनाने के लिए जो जावा के रीडर या बफ़ररेडर क्लास का विस्तार करता है और 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());
क्या कोई आगे बढ़ने की सलाह दे सकता है ।।