C#의 File.ReadLines()
및 File.ReadAllLines()
메서드 비교: 텍스트 파일을 읽을 때 언제 사용해야 합니까?
C#에서 텍스트 파일을 처리할 때 파일 내용을 읽는 데 일반적으로 사용되는 두 가지 방법은 File.ReadLines()
과 File.ReadAllLines()
입니다. 둘 다 문자열 배열을 반환하며 배열의 각 요소는 파일의 한 줄을 나타내지만 성능에 상당한 차이가 있습니다.
File.ReadAllLines()
File.ReadAllLines()
메서드는 전체 파일을 한 번에 메모리로 읽어온 다음 문자열 배열을 반환합니다. 이 방법은 중소 규모 파일에는 매우 효율적이지만 대용량 파일에는 효율성이 크게 떨어집니다.
File.ReadLines()
반대로 File.ReadLines()
메서드는 파일 지연 로딩을 지원하는 IEnumerable<string>
개체를 반환합니다. 즉, 전체 파일을 한 번에 메모리에 로드하지 않으므로 대용량 파일로 작업할 때, 특히 성능이 중요한 시나리오에서 더 나은 선택이 됩니다.
성능 차이
앞서 언급했듯이 File.ReadLines()
는 대용량 파일의 경우 File.ReadAllLines()
보다 성능이 훨씬 뛰어납니다. File.ReadLines()
은 파일을 청크로 읽어서 행을 증분식으로 반환하므로 데이터를 즉시 처리할 수 있기 때문입니다. 반면 File.ReadAllLines()
은 배열을 반환하기 전에 전체 파일이 메모리에 로드될 때까지 기다려야 합니다. 이는 특히 대용량 파일을 처리할 때 성능 병목 현상과 높은 메모리 사용량을 초래할 수 있습니다.
사용예
사용예 File.ReadAllLines()
:
<code class="language-csharp">string[] lines = File.ReadAllLines("C:\mytxt.txt"); foreach (string line in lines) { // 处理每一行 }</code>
사용예 File.ReadLines()
:
<code class="language-csharp">foreach (string line in File.ReadLines("C:\mytxt.txt")) { // 处理每一行(按读取顺序) }</code>
요약
작은 파일의 경우 File.ReadAllLines()
또는 File.ReadLines()
사용 간의 성능 차이는 무시할 수 있습니다. 그러나 대용량 파일을 처리할 때는 지연 로딩 메커니즘으로 인해 File.ReadLines()
이 더 나은 선택이 되어 최적의 성능과 메모리 사용 효율성을 보장합니다.
위 내용은 `File.ReadLines() 대 File.ReadAllLines(): 언제 C#에서 텍스트 파일을 읽을 때 어느 것을 사용해야 합니까?`의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!