본문 바로가기
Programming

C# 파일 입출력

by 나무수피아는 지식의 가지를 뻗어가는 공간입니다. 2025. 12. 15.
반응형

System.IO 네임스페이스

   C#에서 파일 입출력 기능을 사용하려면 `System.IO` 네임스페이스를 포함해야 합니다. 이 네임스페이스는 파일과 디렉터리를 관리하고, 텍스트 및 이진 데이터를 읽고 쓰는 데 필요한 클래스들을 제공합니다.

파일 입출력 클래스

- `StreamReader`: 텍스트 파일을 읽을 때 사용합니다. - `StreamWriter`: 텍스트 파일을 쓸 때 사용합니다. - `FileStream`: 이진 데이터를 읽고 쓸 때 사용합니다.

텍스트 파일 읽기/쓰기 (StreamReader, StreamWriter)

텍스트 파일을 읽고 쓰는 가장 기본적인 방법은 `StreamReader`와 `StreamWriter`를 사용하는 것입니다.

텍스트 파일 쓰기 (StreamWriter)


using System.IO;

class Program
{
    static void Main()
    {
        string filePath = "example.txt";
        using (StreamWriter writer = new StreamWriter(filePath))
        {
            writer.WriteLine("C# 파일 입출력 예제입니다.");
            writer.WriteLine("이 파일은 StreamWriter를 사용하여 작성되었습니다.");
        }
    }
}

위 코드에서는 `StreamWriter`를 사용하여 `example.txt` 파일에 텍스트를 작성합니다. `using` 구문을 사용하여 파일을 자동으로 닫을 수 있습니다.

텍스트 파일 읽기 (StreamReader)


using System.IO;

class Program
{
    static void Main()
    {
        string filePath = "example.txt";
        using (StreamReader reader = new StreamReader(filePath))
        {
            string content = reader.ReadToEnd();
            Console.WriteLine(content);
        }
    }
}

`StreamReader`를 사용하여 텍스트 파일의 내용을 읽을 수 있습니다. `ReadToEnd()` 메서드는 파일의 끝까지 읽어서 문자열로 반환합니다.

JSON/XML 데이터 처리

C#에서는 JSON과 XML 데이터를 읽고 쓸 수 있는 라이브러리가 내장되어 있습니다. JSON은 `Newtonsoft.Json` 라이브러리를 사용하고, XML은 `System.Xml` 네임스페이스의 클래스를 사용합니다.

JSON 데이터 처리

JSON 데이터를 처리하려면 `Newtonsoft.Json` 라이브러리를 설치해야 합니다. NuGet 패키지 매니저를 통해 설치할 수 있습니다.


using Newtonsoft.Json;
using System.IO;

class Program
{
    static void Main()
    {
        // 객체 생성
        var person = new { Name = "홍길동", Age = 30 };
        
        // JSON으로 변환하여 파일에 저장
        string json = JsonConvert.SerializeObject(person);
        File.WriteAllText("person.json", json);
        
        // 파일에서 JSON 읽기
        string readJson = File.ReadAllText("person.json");
        var deserializedPerson = JsonConvert.DeserializeObject(readJson);
        Console.WriteLine(deserializedPerson);
    }
}

`JsonConvert.SerializeObject`를 사용하여 객체를 JSON 문자열로 변환하고, `JsonConvert.DeserializeObject`를 사용하여 JSON 문자열을 객체로 변환합니다.

XML 데이터 처리

XML 데이터를 처리하려면 `System.Xml` 네임스페이스의 클래스를 사용할 수 있습니다. 예를 들어, `XmlDocument` 클래스는 XML 문서를 읽고 쓸 수 있게 해줍니다.


using System;
using System.Xml;

class Program
{
    static void Main()
    {
        // XML 파일 생성
        XmlDocument doc = new XmlDocument();
        XmlElement root = doc.CreateElement("Person");
        doc.AppendChild(root);
        
        XmlElement name = doc.CreateElement("Name");
        name.InnerText = "홍길동";
        root.AppendChild(name);
        
        XmlElement age = doc.CreateElement("Age");
        age.InnerText = "30";
        root.AppendChild(age);
        
        doc.Save("person.xml");

        // XML 파일 읽기
        doc.Load("person.xml");
        Console.WriteLine(doc.OuterXml);
    }
}

`XmlDocument` 클래스를 사용하여 XML 파일을 생성하고, `InnerText` 속성을 통해 XML 요소에 데이터를 추가합니다. `Save` 메서드를 사용하여 파일에 저장하고, `Load` 메서드를 사용하여 파일을 읽습니다.

반응형

'Programming' 카테고리의 다른 글

C# 모듈화와 테스트  (65) 2025.12.16
C# 예외 처리  (13) 2025.12.14
C# NET Core  (0) 2025.12.13
C# WPF/WinForms UI 프로그래밍  (0) 2025.12.12
C# LINQ(Language Integrated Query)  (0) 2025.12.11