Programming/C#
[C#] C#에서 csv파일 읽기, 쓰기, 추가 및 수정 (Open, Create, Append)
향채소
2021. 11. 5. 17:44
CSV파일이란 쉼표로 구분된 파일이며, 데이터를 저장하고 공유하기 편한 장점이 있다.
C#에서 CSV파일 또는 TXT파일을 불러오고 저장하는 간단한 방법을 제공하는데,
FileStream과 Stream 클래스이다.
FileStream으로 원하는 경로와 파일모드를 선택하여 StreamReader나 StreamWriter로 전달하여
읽고 쓰면 되는데, 파일을 수정하는 방식은 파일을 읽어와서 그 내용을 수정 후 다시 저장하는 방식이다.
FileMode 종류
FileMode.Append : 파일을 열고 파일의 끝까지 검색 및 새 파일 생성
FileMode.Create : 새 파일을 만들도록 지정
FileMode.CreateNew : 새 파일을 만들도록 지정, 파일이 있을 시 예외 throw
FileMode.Open : 기존 파일을 열도록 지정
FileMode.OpenOrCreate : 기존 파일이 있을 시 열어주고 기존 파일이 없을 시 파일 생성
FileMode.Truncate : 기존 파일을 열도록 지정, 파일의 내용을 초기화
추가
using System.IO;
using System.Text;
// 파일 불러오기
string readFile = @"C:\불러올 파일 경로.csv";
FileStream fsOpen = new FileStream(readFile, FileMode.Open);
StreamReader sr = new StreamReader(fsOpen, Encoding.UTF8, false);
List<string> strList = new List<string>();
while (!sr.EndOfStream)
{
string s = sr.ReadLine();
string[] temp = s.Split(',');
strList.Add(temp[0] + ", " + temp[1]);
}
// 파일 생성
string writeFile = @"C:\파일 쓰기 경로.csv"; // 새로운 경로일 시 생성, 똑같은 경로 일 시 덮어쓰기
FileStream fsCreate = new FileStream(writeFile, FileMode.Create);
StreamWriter wr2 = new StreamWriter(fsCreate, Encoding.UTF8);
for (int i = 0; i < strList.Count; i++)
{
wr2.WriteLine(strList[i]);
Console.WriteLine(strList[i]);
// 중간에 제거할 목록이 있을 시
//if (i != 해당 번호)
//{}
}
wr2.WriteLine("Finish"); // 마지막 줄에 텍스트 추가
wr2.Close();
// 파일 덮어쓰기
string strFile = @"C:\덮어쓸 파일 경로.csv";
FileStream fsAppend = new FileStream(strFile, FileMode.Append);
StreamWriter wr = new StreamWriter(fsAppend, Encoding.UTF8);
wr.WriteLine("Text1, Text2");
wr.Close();