> 백엔드 개발 > Golang > 파일에서 특정 줄을 읽는 더 효율적인 방법이 있습니까?

파일에서 특정 줄을 읽는 더 효율적인 방법이 있습니까?

Susan Sarandon
풀어 주다: 2024-10-29 04:47:02
원래의
1002명이 탐색했습니다.

  Is There a More Efficient Way to Read a Specific Line from a File?

특정 파일 줄을 효율적으로 읽는 방법

프로그래밍에서 파일의 특정 줄을 읽어야 하는 경우가 자주 발생합니다. 이를 해결하기 위해 ReadLine이라는 기능이 개발되었습니다. 원하는 결과를 효과적으로 달성하지만 여전히 남아 있는 질문이 있습니다. 더 우수하고 효율적인 접근 방식이 있습니까?

ReadLine 기능은 bufio.Scanner를 활용하여 파일을 한 줄씩 탐색합니다. 지정된 줄 번호에 도달하면 줄 텍스트, 현재 줄 번호 및 잠재적인 스캔 오류를 검색하고 반환합니다.

<code class="go">func ReadLine(r io.Reader, lineNum int) (line string, lastLine int, err error) {
    sc := bufio.NewScanner(r)
    for sc.Scan() {
        lastLine++
        if lastLine == lineNum {
            return sc.Text(), lastLine, sc.Err()
        }
    }
    return line, lastLine, io.EOF
}</code>
로그인 후 복사

그러나 이 함수는 파일이 메모리에 들어갈 수 있다고 가정한다는 점에 주목할 가치가 있습니다. 엄청나게 큰 파일의 경우 전체 파일을 메모리에 저장하지 않고 파일을 한 줄씩 처리하는 대체 전략이 더 적합할 수 있습니다.

위 내용은 파일에서 특정 줄을 읽는 더 효율적인 방법이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿