일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- c# 윈폼
- C++
- c# 추상 클래스
- Data Structure
- c언어
- 깃
- HTML
- Unity
- vim
- jupyter
- Python
- 유니티
- git
- Flutter
- c# winform
- jupyter lab
- gitlab
- 다트 언어
- c#
- 구조체
- 도커
- C언어 포인터
- C# delegate
- 플러터
- Houdini
- github
- 포인터
- docker
- Algorithm
- dart 언어
Archives
- Today
- Total
nomad-programmer
[Programming/C#] StreamWriter / StreamReader (텍스트 파일 처리) 본문
텍스트 파일은 구조는 간단하지만 활용도가 높은 파일 형식이다. ASCII 인코딩에서는 각 바이트가 문자 하나를 나타내기 때문에 바이트 오더의 문제에서도 벗어날 수 있고, 이로 인해 플랫폼에 관계없이 생성하고 읽을 수 있다. 뿐만 아니라 프로그램이 생성한 파일의 내용을 편집기로 열면 사람이 바로 읽을 수도 있다.
.NET 프레임워크는 텍스트 파일을 쓰고 읽을 수 있도록 StreamWriter/StreamReader를 제공한다. 이 두 클래스들은 Stream의 도우미 클래스이다. Stream이 NetworkStream이라면 네트워크를 통해 텍스트 데이터를 내보내거나 읽어들이고, FileStream이라면 파일로 텍스트 데이터를 내보내거나 이로부터 읽어들인다.
StreamWriter
StreamWriter sw = new StreamWriter(new FileStream("a.dat", FileMode.Create));
sw.Write(32);
sw.WriteLine("Hello World!");
sw.WriteLine(3.14);
sw.Close();
StreamReader
StreamReader sr = new StreamReader(new FileStream("a.dat", FileMode.Open));
while (sr.EndOfStream == false)
{
Console.WriteLine(sr.ReadLine());
}
sr.Close();
StreamWriter/StreamReader의 사용 예제 프로그램
using System;
using System.IO;
namespace CSharpExample
{
internal class MainApp
{
static int Main(string[] args)
{
StreamWriter sw = new StreamWriter(new FileStream("a.txt", FileMode.Create));
sw.WriteLine(int.MaxValue);
sw.WriteLine("Hello World!");
sw.WriteLine(uint.MaxValue);
sw.WriteLine("안녕하세요.");
sw.WriteLine(double.MaxValue);
sw.Close();
StreamReader sr = new StreamReader(new FileStream("a.txt", FileMode.Open));
Console.WriteLine($"File Size: {sr.BaseStream.Length} bytes");
while (!sr.EndOfStream)
{
Console.WriteLine(sr.ReadLine());
}
sr.Close();
return 0;
}
}
}
/* 결과
File Size: 79 bytes
2147483647
Hello World!
4294967295
안녕하세요.
1.79769313486232E+308
*/
'Programming > C#' 카테고리의 다른 글
[Programming/C#] 스레드 (Thread) (0) | 2020.09.28 |
---|---|
[Programming/C#] 객체 직렬화 (Serialization) (0) | 2020.09.28 |
[Programming/C#] BinaryWriter / BinaryReader (바이너리 파일 처리) (0) | 2020.09.28 |
[Programming/C#] 스트림 (Stream) (0) | 2020.09.28 |
[Programming/C#] 파일과 디렉토리 (0) | 2020.09.27 |
Comments