J'ai un fichier au format .gz. La classe java pour lire ce fichier est GZIPInputStream. Toutefois, cette classe n'élargit pas la classe BufferedReader de Java. Par conséquent, je ne suis pas capable de lire le fichier ligne par ligne. Je besoin de quelque chose comme çaLecture GZIPInputStream ligne par ligne
reader = new MyGZInputStream(some constructor of GZInputStream)
reader.readLine()...
Je pensais de créer ma classe qui étend le lecteur ou la classe BufferedReader de java et utiliser GZIPInputStream comme une de ses 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);
}
}
Mais, cela ne fonctionne pas lorsque j'utilise
BufferedReader in = new BufferedReader(
new MyGZFilReader("F:/gawiki-20090614-stub-meta-history.xml.gz"));
System.out.println(in.readLine());
Quelqu'un peut-il des conseils comment procéder ..
regardez sur ce lien http://stackoverflow.com/q/6717165/779408. Une méthode de compression et de décompression est représentée ici. – breceivemail
Pour l'amour de tout ce qui est bon et juste dans ce monde et pour la santé mentale de tous les développeurs qui écrivent même le code à distance utile ..... Rendez-vous compte DE CODER COMME @erickson RAPPELLE! Il est la seule réponse qui le souligne, ce qui me donne envie de pleurer. – James