IT프로그래밍

[C#]C# text 파일 읽기 / C# txt 파일 읽기 /C# text read / C# txt read

Manniz 2020. 4. 3.

C# TEXT 파일 한줄씩 읽기

StreamReader SR = new StreamReader("writeTest.txt");    //읽어들일 TXT 파일의 경로를 
                                                       //매개변수로 StreamReader 생성
            
string line;                                            //한 줄씩 읽은 후, 그 값을 저장시킬 변수
 
string result = "";                                     //전체 라인을 저장시킬 변수
while ((line = SR.ReadLine()) != null)                  //line변수에 SR에서 한줄을 읽은 걸 저장, 읽은 줄이 null이 아닐때까지 반복
{
    result += line;                                      //전체 라인 변수에 그 값을 저장
    result += "\r\n";                                   //표출을 위해서 추가
}
 
textBox1.Text = result;                                 //예제 textbox폼에 전체 읽은 문구를 표출
 

 

 

C# TEXT 파일 전체 읽기

StreamReader SR = new StreamReader("writeTest.txt");    //읽어들일 TXT 파일의 경로를 
                                                                   //매개변수로 StreamReader 생성
 
string result = "";                                      //읽은 TXT파일을 저장시킬 변수
result = SR.ReadToEnd();                                 //처음부터 끝까지 읽은 후 저장
 
textBox1.Text = result;                                  //예제 textbox폼에 전체 읽은 문구를 표출
 

 

저번 C# TEXT FILE 쓰기 포스팅 이후 파일 입출력 관련 2번째 포스팅 입니다.

TEXT FILE Write 관련 글은 하단 포스팅을 참고 부탁드립니다.

[C#]C# txt 쓰기 / C# text 쓰기 / C# 텍스트 파일 쓰기

 

[C#]C# txt 쓰기 / C# text 쓰기 / C# 텍스트 파일 쓰기

C# TEXT FILE 덮어 쓰기(기존 파일 덮어 쓰기) StreamWriter writer; writer = File.CreateText("writeTest.txt"); //Text File이 저장될 위치(파일명) //파일 이름만 지정하면 컴파일된 폴더내 해당 파일 이름으..

manniz.tistory.com

 

C# TXT 파일을 읽는 여러 방법중

1. 1줄씩 읽어 들이는 방법

2. 전체를 읽는 방법

두가지에 대해 예제와 결과를 통해 설명드리겠습니다.

 


폼 디자인

 

C# 파일 읽기 전체 소스 코드

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;        //추가
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace my_notepad
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            StreamWriter writer;
            writer = File.CreateText("writeTest.txt");
            writer.WriteLine("텍스트 파일 새로 쓰기 성공");
            writer.Close();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            StreamWriter writer;
            writer = File.AppendText("writeTest.txt");
            writer.WriteLine("텍스트 파일 이어 쓰기 성공");
            writer.Close();
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            StreamReader SR = new StreamReader("writeTest.txt");    //읽어들일 TXT 파일의 경로를 
                                                                    //매개변수로 StreamReader 생성
            
            string line;                                            //한 줄씩 읽은 후, 그 값을 저장시킬 변수
 
            string result = "";                                     //전체 라인을 저장시킬 변수
            while ((line = SR.ReadLine()) != null)                  //line변수에 SR에서 한줄을 읽은 걸 저장, 읽은 줄이 null이 아닐때까지 반복
            {
                result += line;                                     //전체 라인 변수에 그 값을 저장
                result += "\r\n";                                   //표출을 위해서 추가
            }
 
            textBox1.Text = result;                                 //textbox폼에 전체 읽은 문구를 표출
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            StreamReader SR = new StreamReader("writeTest.txt");    //읽어들일 TXT 파일의 경로를 
                                                                    //매개변수로 StreamReader 생성
 
            string result = "";                                     //읽은 TXT파일을 저장시킬 변수
            result = SR.ReadToEnd();                                //처음부터 끝까지 읽은 후 저장
 
            textBox1.Text = result;                                 //textbox폼에 전체 읽은 문구를 표출
        }
    }
}
 
 
 

 

위에서 말씀드린 2가지 케이스의 가장 큰 차이점은

StreamReader에서 모든 라인을 읽고 반환을 해주느냐

아니면 한 라인씩 읽으면서 반환을 해주느냐 입니다.

 

상황에 따라 다르겠지만 저는 한 라인씩 읽는 것을 많이 사용합니다.

전체 텍스트를 라인씩 읽어들이면서, 필요한 정보를 얻고 나면

break로 해당 루프를 빠져나오는 식으로 많이 사용하며,

ReadToEnd() 전체 TEXT를 가져왔다고 해도 내가 필요한 정보만 빼내려면 또 파싱을 해야 하기 때문이죠.


 

 


테스트에 사용할 텍스트(TXT) 파일의 내용과 경로

텍스트 파일 내용

 

프로젝트의 debug폴더 내에 텍스트 파일 확인

 

C# TEXT FILE 한줄씩 읽기 실행결과

한줄씩 읽기를 통해 TEXT파일을 읽어들인 후, textbox에 표출

 

C# TEXT FILE 전체 읽기 실행결과

전체 읽기를 통해 읽어들인 후, textbox에 표출


예제 자체가 전체 라인을 읽는 것이기 때문에 결과는 동일합니다.

 

마지막으로 C# 파일 읽기 프로젝트 전체 압축하여 첨부합니다.

my_notepad.zip
0.05MB

 

다음 포스팅에서는 Open, Save dialogue를 통해서

실제 메모장 처럼 TEXT 파일을 읽고 쓰는 것에 대해 포스팅 할 예정입니다.

>_<

댓글