.gz 형식의 파일이 있습니다. 이 파일을 읽기위한 Java 클래스는 GZIPInputStream입니다. 그러나이 클래스는 java의 BufferedReader 클래스를 확장하지 않습니다. 결과적으로 파일을 한 줄씩 읽을 수 없습니다. 이런 게 필요해
reader = new MyGZInputStream( some constructor of GZInputStream)
reader.readLine()...
나는 Java의 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());
진행 방법을 조언 해 줄 수있는 사람 ..