728x90
대용량 파일을 읽어들이기 위해서는 전체적으로 읽어들이는 것과 한 줄씩 읽어들이는 것이 있습니다.
하지만 ReadAllLines으로는 읽을 수 없습니다. 또한 유사한 방법으로는 사용 할 수 없다고 생각합니다.
그 이유는 전체 파일을 문자열 배열의 메모리로 읽으려고 합니다. 우리의 대부분 컴퓨터는 약 8GB ~ 16GB 램을 가지고 있기 때문에 이하의 파일은
가능하나, 이상의 파일은 불가능합니다.
또한 Array 기본 최대 크기는 2GB, 파일의 줄 수보다 많을 경우 한번에 전체적으로 읽을 수 없습니다.
한번에 한줄씩 파일을 읽으면 컴퓨터에 많은 양의 메모리 사용이 필요 없으며, 한줄 읽는 메모리만으로 충분 합니다.
using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (BufferedStream bs = new BufferedStream(fs)) using (StreamReader sr = new StreamReader(bs)) { string line; while ((line = sr.ReadLine()) != null) { } } |
내 컴퓨터 RAM 용량 확인하기
https://clear-sky-sun.tistory.com/62
728x90
'C#' 카테고리의 다른 글
[WPF] Open CV 사용 방법 기초 (0) | 2021.01.18 |
---|---|
여러개 클릭 버튼 하나로 관리하는 방법 (0) | 2021.01.14 |
[WPF] 빌드 작업 설정이란? (0) | 2020.12.21 |
[wpf] Directory.GetFiles 특정 파일 제외하고 파일 제거 (0) | 2020.12.17 |
[WPF] 윈도우 창 닫기 (0) | 2020.12.10 |