728x90
File 클래스는 C#에서 텍스트 파일을 읽는 두 가지 static 메서드를 제공합니다.
File.ReadAllText() 메서드는 텍스트 파일을 열고 파일의 모든 텍스트를 문자열로 읽은 다음 파일을 닫습니다.
다음 코드 조각은 텍스트 파일을 문자열로 읽어 들입니다:
// Read entire text file content in one string
string text = File.ReadAllText(textFile);
Console.WriteLine(text);
File.ReadAllLines() 메서드는 텍스트 파일을 열고 파일의 모든 줄을 문자열 배열로 읽은 다음 파일을 닫습니다.
다음 코드 조각은 텍스트 파일을 문자열 배열로 읽어 들입니다:
// Read a text file line by line.
string[] lines = File.ReadAllLines(textFile);
foreach (string line in lines)
Console.WriteLine(line);
텍스트 파일을 읽는 또 다른 방법은 TextReader를 구현하고 특정 인코딩의 바이트 스트림에서 문자를 읽는 StreamReader 클래스를 사용하는 것입니다.
StreamReader의 ReadLine 메서드는 한 번에 한 줄씩 읽어 들입니다:
// Read file using StreamReader. Reads file line by line
using(StreamReader file = new StreamReader(textFile)) {
int counter = 0;
string ln;
while ((ln = file.ReadLine()) != null) {
Console.WriteLine(ln);
counter++;
}
file.Close();
Console.WriteLine($ "File has {counter} lines.");
}
아래 전체 코드 샘플은 위에서 설명한 방법을 사용하여 텍스트 파일을 읽고 해당 내용을 콘솔에 표시합니다.
이 코드 테스트는 시스템에서 텍스트 파일을 찾고(혹은 텍스트가 포함된 파일을 만들고) "textFile" 변수를 .txt 파일의 전체 경로로 변경 시킵니다:
using System;
using System.IO;
namespace ReadATextFile {
class Program {
// Default folder
static readonly string rootFolder = @ "C:\Temp\Data\";
//Default file. MAKE SURE TO CHANGE THIS LOCATION AND FILE PATH TO YOUR FILE
static readonly string textFile = @ "C:\Temp\Data\Authors.txt";
static void Main(string[] args) {
if (File.Exists(textFile)) {
// Read entire text file content in one string
string text = File.ReadAllText(textFile);
Console.WriteLine(text);
}
if (File.Exists(textFile)) {
// Read a text file line by line.
string[] lines = File.ReadAllLines(textFile);
foreach(string line in lines)
Console.WriteLine(line);
}
if (File.Exists(textFile)) {
// Read file using StreamReader. Reads file line by line
using(StreamReader file = new StreamReader(textFile)) {
int counter = 0;
string ln;
while ((ln = file.ReadLine()) != null) {
Console.WriteLine(ln);
counter++;
}
file.Close();
Console.WriteLine($ "File has {counter} lines.");
}
}
Console.ReadKey();
}
}
}
이상.
728x90
'프로그래밍' 카테고리의 다른 글
WMI 데이터 수집 프로그램 예제 (1) | 2023.02.10 |
---|---|
[C++] WMI - OS의 모든 것을 질의 해보기 (0) | 2023.02.07 |
[C#.NET]여러가지 머신레벨의 시스템 정보 얻는 방법 (0) | 2023.02.05 |
[C#.NET] 모든 WMI 클래스 속성 찾아내기 (0) | 2023.02.04 |
[C/C++]sizeof 사용 없이 배열의 sizeof 찾기 (0) | 2023.01.29 |