.gz 형식의 파일이 있습니다. 이 파일을 읽기위한 Java 클래스는 GZIPInputStream입니다. 그러나이 클래스는 Java의 BufferedReader 클래스를 확장하지 않습니다. 따라서 파일을 한 줄씩 읽을 수 없습니다. 나는 Reader 또는 자바의의 BufferedReader 클래스를 확장하고 그 변수의 하나로서 GZIPInputStream을 사용하여 내 수업을 만들 생각이GZIPInputStream 줄 단위로 읽기
reader = new MyGZInputStream(some constructor of GZInputStream)
reader.readLine()...
같은 I가 필요합니다.
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());
누군가의 조언을 진행할 수있는 방법을 사용할 때 작동하지 않습니다 ..
이 링크를보세요. http://stackoverflow.com/q/6717165/779408. 압축 및 압축 해제 방법이 여기에 표시됩니다. – breceivemail
이 세상에서 선하고 옳은 모든 것의 사랑과 보람있는 코드를 작성하는 개발자의 온전함을 위해서 ..... @ERickson 포인트 인코딩으로 알아 두십시오! 그는 이것을 지적한 유일한 대답으로, 나는 울기를 원한다. – James