상세 컨텐츠

본문 제목

C# 읽은 문자열 줄 수 구하는 방법

프로그래밍/C#

by TickTack 2022. 9. 14. 15:27

본문

이번에는 C# 에서 읽은 문자열의 줄 개수를 구하는 방법에 대하여 알아보겠습니다.

크게 3가지 방법이 있습니다.

 

1. ReadLine()

StreamReader, StringReader 등 읽기와 관련된 클래스를 사용하여 읽었다면 해당 변수의 ReadLine() 으로 개수를 구할 수 있습니다. 아래는 예시 코드입니다.

 

StreamReader file = File.OpenText(openFileDialog.FileName)
int count = 0;
while (file.ReadLine() != null)
{
    count++;
}

 

while 문을 통하여 더 이상 읽을 수 있는 문자열이 없을 때까지 반복하면서 count 변수를 증가시키는 방법입니다.

 

2. File.ReadAllLines("").Length

파일을 바로 읽을 경우 사용할 수 있는 방법입니다.

System.IO 가 using 문에 추가되어 있어야 합니다.

아래는 예시 코드입니다.

 

int count = File.ReadAllLines(openFileDialog.FileName).Length;

 

3. File.ReadLines("").Count()

2번 방법과 같이 파일을 바로 읽을 경우 사용할 수 있는 방법입니다.

System.IO 가 using 문에 추가되어 있어야 합니다.

아래는 예시 코드입니다.

 

int lineCount = File.ReadLines(openFileDialog.FileName).Count();

 

※ 성능 비교

불러오는 방법이 다양하다보니 어떤 것을 써야 할지 애매하여 줄 수를 백 만개정도 놓고 테스트를 진행하였습니다.

첫 번째는 109만개 가량의 줄 개수를 가진 텍스트 파일을 불러왔을 때의 걸린 시간입니다.

 

1091952개의 줄 개수

 

첫 번째는 218만개 가량의 줄 개수를 가진 텍스트 파일을 불러왔을 때의 걸린 시간입니다.

 

2183904개의 줄 개수

 

비록 한 번씩만 진행해보았지만 걸리는 시간의 차이를 보면 ReadAllLines 함수가 가장 비효율적 이라는 것을 알 수 있습니다. 물론 줄 개수가 적다면 코드 자체는 간단하기 때문에 사용해도 무방할 듯 하나, 똑같이 간편한 ReadLines 함수를 사용해서 구하는게 아무래도 가장 효과적일 것 같네요. 스샷외의 테스트 결과를 보면 While 문과 걸리는 시간이 0.005초 정도의 오차가 나온적도 있기 때문에 참고하시면 될 것 같습니다.

 

이상으로 C# 읽은 문자열 줄 수 구하는 방법에 대하여 알아보았습니다.

관련글 더보기

댓글 영역