C# 파일 읽기 및 쓰기 방법은 두 가지가 있습니다. 오늘은 그중 하나인 File 클래스의 메소드를 사용하여 파일을 불러오는 방법에 대해 알아보려고 합니다.
File 클래스로 C# 파일 읽기 및 쓰기
C#의 File 클래스의 WriteAllText() 메소드 활용하기
먼저 File 클래스의 WriteAllText() 메소드를 활용하여 텍스트 파일을 만드는 방법입니다. “System.IO” 라이브러리를 들여온 후 File.WirteAllText() 함수에 경로와 입력할 내용을 매개변수로 넘겨주면 해당 내용을 기반으로 파일이 형성됩니다.
using System.IO;
private void Write(string path)
{
File.WriteAllText(path,"this is text");//Write text on path
}
위 코드를 C#에서 호출하면 아래와 같은 파일이 경로에 생성됩니다.
입력된 매개변수 값과 같은 내용의 텍스트 파일이 경로에 생성되죠. 이를 활용하면 저장해야 되는 내용을 변환하여 파일로 저장하는 것이 가능합니다.
C#의 File 클래스의 ReadAllText() 메소드 활용하기
다음은 File 클래스의 ReadAllText()를 활용하여 저장된 데이터를 불러오도록 해봅시다. 마찬가지고 “System.IO” 라이브러리를 들여온 후 File.ReadAllText() 함수에 경로를 매개변수로 넘겨주면 됩니다.
private void Read(string path)
{
var result = File.ReadAllText(path);//Read text from path
Console.WriteLine(result);
}
위와 같은 코드를 작성하면 입력된 경로의 파일을 불러와 콘솔에 출력해주게 되죠. 그런데 간혹 파일이 없는 경우가 생깁니다. 이럴 경우 오류가 발생하기 때문에 이를 대비하여 파일이 있는지 없는지 파일을 불러오기 전에 체크해야 합니다.
이러한 문제를 해결하기 위해 FileInfo() 클래스를 활용해 파일의 존재 여부를 불러오기 전에 파악하는 것이 좋습니다. 예제 코드는 아래와 같습니다.
private void Read(string path)
{
var fileInfo = new FileInfo(path);
if (!fileInfo.Exists) { //Check file
return;
}
var result = File.ReadAllText(path);//Read text from path
Console.WriteLine(result);
}
FileInfo() 객체의 생성자에 파일 경로 정보를 넘겨준 뒤 if문에서 해당 경로에 파일이 있는지 체크한 후 파일이 없다면 함수를 그냥 종료하고 파일이 있다면 읽어와 콘솔에 출력하도록 만들었습니다.
return 부분에서 Exception()을 throw 하여 나중에 함수를 활용할 때 피드백을 받아 처리하도록 만들 수도 있겠죠.
이렇게 오늘은 C# 파일 읽기 및 쓰기 방법에 대해 알아보았습니다. 이 기능을 활용하면 지난번에 Json 변환을 이용하여 만들어진 데이터 문자열을 파일로 저장하는 것이 가능하겠죠. 향후 여러 포스팅을 결합하여 플레이어 데이터를 저장하는 강의 또한 작성해 보도록 하겠습니다. 그럼 이번 글을 여기서 마칩니다.
File클래스에 대한 자세한 내용은 아래에서 찾아보실 수 있습니다.