C#에서 대용량 텍스트 파일 읽기: File.ReadLines()
과 File.ReadAllLines()
File.ReadLines()
및 File.ReadAllLines()
은 모두 C#에서 텍스트 파일을 읽는 방법이지만 성능이 크게 다릅니다.
File.ReadAllLines()
File.ReadAllLines()
은 전체 파일을 한 번에 메모리로 읽어 들여 문자열 배열을 반환합니다. 이 방법은 작은 파일에는 효율적이지만 큰 파일에는 문제가 있습니다. 파일 크기가 증가하면 전체 파일을 읽고 처리하는 데 필요한 시간이 크게 늘어납니다. 또한 File.ReadAllLines()
은 특히 기가바이트 크기의 파일을 작업할 때 많은 메모리를 소비합니다.
File.ReadLines()
File.ReadLines()
은 지연 로딩을 통해 File.ReadAllLines()
의 한계를 해결합니다. 전체 파일을 한 번에 메모리로 읽는 대신 필요에 따라 파일의 각 줄을 반복할 수 있는 IEnumerable<string>
을 반환합니다. 이 접근 방식은 메모리 사용량을 줄이고 대용량 파일을 처리할 때 성능을 향상시킵니다.
성능 비교
벤치마크에 따르면 대용량 파일의 경우 File.ReadLines()
가 File.ReadAllLines()
보다 성능이 더 좋습니다. 이러한 차이는 파일 크기가 커질수록 더욱 두드러집니다. 예를 들어 File.ReadAllLines()
을 사용하여 100MB 파일을 읽는 데는 몇 초가 걸릴 수 있지만 File.ReadLines()
은 1초 이내에 작업을 완료할 수 있습니다.
사용예
File.ReadLines()
을 사용하여 파일 읽기:
<code class="language-csharp">using System.IO; string path = "C:\mytxt.txt"; foreach (var line in File.ReadLines(path)) { // 处理每一行 }</code>
File.ReadAllLines()
을 사용하여 파일 읽기:
<code class="language-csharp">using System.IO; string path = "C:\mytxt.txt"; string[] lines = File.ReadAllLines(path); // 处理所有行</code>
결론
대용량 텍스트 파일의 경우 File.ReadLines()
는 File.ReadAllLines()
에 비해 상당한 성능 이점을 제공합니다. 지연 로딩을 통해 File.ReadLines()
메모리 소비를 줄이고 효율성을 저하시키지 않으면서 처리 속도를 높입니다.
위 내용은 `File.ReadLines()` 대 `File.ReadAllLines()`: C#에서 큰 텍스트 파일을 읽는 데 가장 적합한 것은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!