대용량 텍스트 파일의 마지막 줄을 효율적으로 검색
대량 텍스트 파일을 처리할 때는 마지막 줄을 효율적으로 검색하는 것이 중요합니다. 대용량 파일의 경우 무작위 액세스는 시간이 많이 걸리므로 실용적이지 않습니다. 대신 다음 해결 방법을 고려하십시오.
공백이 아닌 마지막 줄 반환:
아래 tail 기능은 파일을 로드하거나 공백이 아닌 마지막 줄을 빠르게 검색합니다. 전체 파일을 순회합니다. 파일의 끝을 찾아 줄 바꿈을 만날 때까지 문자를 뒤로 읽은 다음 마지막 줄을 구성하고 반환합니다.
public String tail(File file) { // ... for (long filePointer = fileLength; filePointer != -1; filePointer--) { // ... sb.append((char) readByte); } // ... }
마지막 N 줄 반환:
대신 마지막 N줄이 필요하다면 tail2 함수를 사용하세요. 비슷한 기술을 사용하지만 출력을 반전하고 구성하기 전에 원하는 줄을 결정하기 위해 줄 바꿈을 계산합니다.
public String tail2(File file, int lines) { // ... for (long filePointer = fileLength; filePointer != -1; filePointer--) { line = line + 1; sb.append((char) readByte); } // ... }
호출 및 사용:
File file = new File("D:\stuff\huge.log"); System.out.println(tail(file)); System.out.println(tail2(file, 10));
유니코드 고려 사항:
구현에서는 문자 반전을 사용하여 줄을 재구성합니다. 일반적으로 효과적이지만 악센트 및 모자와 같은 문자에 유니코드 반전 문제가 발생할 수 있습니다. 따라서 다양한 언어에서 이 접근 방식을 사용하기 전에 철저한 테스트가 필수적입니다.
위 내용은 큰 텍스트 파일의 마지막 줄을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!