은 기본적으로 내가 같은 텍스트 파일을 필요 후면에서 전면에 TEXTFILE에 라인을 통해 반복 않습니다는 구한거야 나는
헨리
의 순서로 파일에서 읽을 수 있습니다.버니
프레드
내가에서 읽고 있어요 실제 파일은> 30메가바이트 그리고 그것은 전체 파일을 읽을 수있는 완벽한 솔루션 미만 배열로 분할에서 이동 한 다음 배열을 리버스 것 그곳에. 너무 오래 걸립니다. 내 구체적인 목표는 문자열의 첫 번째 항목 (이 경우 "InitGame")을 찾은 다음 해당 줄의 시작 부분의 위치 시작 부분을 반환하는 것입니다.
저는 파이썬에서 이와 비슷한 것을했습니다. 내 방법은 파일의 끝에 - 1024를 찾은 다음 끝에 도달 할 때까지 줄을 읽은 다음 이전 시작 지점에서 1024를 찾고 tell()을 사용하여 이전에 도착했을 때 멈출 것입니다. 출발점. 그래서 내가 찾던 텍스트를 찾을 때까지 파일의 끝에서 뒤로 블록을 읽을 것입니다.
지금까지 자바에서이 작업을 수행하고 있습니다. 어떤 도움이라도 대단히 감사하겠습니다. 볼티모어 근처에 살면 신선한 구운 쿠키를 가져 오는 경우도 있습니다.
감사합니다.
상세 정보 :
는 내가 읽고있다 파일 I가 서버를 호스팅 게임에 대한 로그 파일이기 때문에 뒤로 검색해야 (| ERR |는이다 도시 테러 서버를 확인하십시오.). 로그 파일은 게임에서 발생하는 모든 이벤트를 기록한 다음 프로그램에서 각 이벤트를 구문 분석하고 처리 한 다음 이에 따라 행동합니다 (예 : 사람들의 헤드 샷을 추적하고 자동으로 d- 가방 인 사람들을 쫓아냅니다.). 가장 최근의 InitGame 항목을 검색하여 모든 플레이어 개체를 인스턴스화하고 해당 게임이 시작된 이래로 돌봐야 할 기타 항목을 처리 할 수 있도록해야합니다. 이 파일에는 수백 개의 InitGame 이벤트가 있지만 마지막 이벤트를 원합니다. 거꾸로 검색 할 필요가없는 더 좋은 방법이 있다면 알려 주시기 바랍니다.
감사
쿠키가 유혹적이지만 볼티모어 근처에 있지 않으므로 답변이 없습니다. ;) 실제로 파일에서 뒤로 검색하는 이유를 분명히하지 않았습니다. 대상 문자열이 항상 끝에 있다는 것을 모를 경우 파일 전방위를 읽는 것과 관련하여 많은 추가 작업을 수행해야합니다. 자바에서 seek/tell 접근법은 알고리즘 적으로 동일 할 것이고, 탐색 할 수있는 InputStream이 필요하다. – msw