C#

파일 입출력

joo_coding 2025. 10. 23. 13:58

**스트림(Stream)**은

파일,네트워크,메모리 등 다양한 데이터 소스와 상호작용하는 방식

데이터를 연속적인 흐름 으로 처리하며, 파일을 다룰 때 효율적이고 유연한 방법을 제공

 

<파일을 다루는 클래스와 메소드>

클래스 설명
File 파일에 대한 생성, 복사, 삭제, 이동 및 열기를 위한 정적 메소드를 제공
FileInfo  파일에 대한 생성, 복사, 삭제, 이동 및 열기를 위한 속성 및 인스턴스 메소드를 제공
FileStream  파일에 대한 스트림을 제공하여 동기 및 비동기 읽기/쓰기 작업을 모두 지원
StreamReader  문자열에서 읽어오는 TextReader를 구현함
StreamWriter  TextWriter를 구현하여 특정 인코딩의 스트림에 문자를 씀

 

파일 쓰기 File.WriteAllText

파일 읽기 File.ReadAllText


 

 

using System;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Prac
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnRead_Click(object sender, EventArgs e)
        {
            StreamReader sr = new StreamReader("data.txt"); // 스트림 생성하기
            while(!sr.EndOfStream) // 파일의 끝이 아니면 계속 반복
            {
                rtb.AppendText(sr.ReadLine());
            }
            MessageBox.Show("파일 읽음");
            sr.Close(); // 스트림 닫아주기
        }

        private void btnWrite_Click(object sender, EventArgs e)
        {
            StreamWriter sw = new StreamWriter("data.txt");
            sw.WriteLine("<<입력내용>>\n");
            sw.WriteLine(rtb.Text);
            MessageBox.Show("저장됨");
            rtb.ResetText();
            sw.Close();
        }

        private void btnOpen_Click(object sender, EventArgs e)
        {
            rtb.ResetText();
        }
    }
}