2011-11-04 1 views
1

나는 zip 내부에 거대한 txt 파일을 읽었습니다.GZIPInputStream에서 마지막 * n * 줄을 읽는 중

GZIPInputStream fstream = new GZIPInputStream(new FileInputStream(zipfile)); 
BufferedReader breader = new BufferedReader(new InputStreamReader(fstream)); 

나는 파일의, 마지막 n 개의 행을 읽을 필요가있다.

eof까지 readline없이 할 수 있습니까?

+0

는 (제공 누구든지 배치 할 귀찮게 것 Z_FULL_FLUSH 같은 (그리고 사전을 덤핑) – bestsss

답변

4

eof까지 readline없이 할 수 있습니까? 아니 잘으로 인해 다음과 같은 두 가지 이유에

: 당신은 거꾸로 스트림을 읽을 수 없습니다

  1. .
  2. 거꾸로 지퍼를 열 수 없습니다. 당신은 당신이에 관심이없는 라인을 무시하는 것을 특징으로

그냥 전체 스트림을 읽습니다.

+0

기술적으로 과거 Z_FULL_FLUSH 마크를 읽을 가능성이없는 한, 스트림/사전 압축 된 "파일을"읽을 수 없습니다) – bestsss

-2

당신이 RandomAccessFile의

를 통해

을 해당 파일을 처리 할 수 ​​있다면 이것은 당신을 도움이 될 것입니다.

Java : Read last n lines of a HUGE file

+0

gzipped 것을주의하십시오. 스트림의 일부분을 풀 수 없습니다. gzip으로 압축되지 않은 경우에도 관심있는 행의 시작 바이트의 정확한 바이트 위치를 알아야합니다. – BalusC

+0

동의하면 직접 해결할 수 없습니다. – r0ast3d