Tengo un archivo en formato .gz. La clase Java para leer este archivo es GZIPInputStream. Sin embargo, esta clase no extiende la clase BufferedReader de java. Como resultado, no puedo leer el archivo línea por línea. Necesito algo como estoGZIPInputStream leyendo línea por línea
reader = new MyGZInputStream(some constructor of GZInputStream)
reader.readLine()...
pensé en la creación de mi clase que se extiende el lector o la clase BufferedReader de Java y utilizar GZIPInputStream como uno de sus variables.
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);
}
}
embargo, esto no funciona cuando uso
BufferedReader in = new BufferedReader(
new MyGZFilReader("F:/gawiki-20090614-stub-meta-history.xml.gz"));
System.out.println(in.readLine());
pueden asesoramiento a alguien cómo proceder ..
mira este enlace http://stackoverflow.com/q/6717165/779408. Aquí se representa un método de compresión y descompresión. – breceivemail
Por el amor de todo lo que es bueno y correcto en este mundo y por la cordura de cualquier desarrollador que escriba código que sea remotamente valioso ... ¡ESTÉ CONSCIENTE DE CODIFICAR COMO @erickson SEÑALA! Él es la única respuesta que señala esto, lo que me da ganas de llorar. – James