본문 바로가기

[C#] 파일 입출력

I'm 영서 2021. 4. 19.
반응형

파일 입출력을 위해 FileStream 을 사용해줘야 한다.

 

FileSream 객체는 인스턴스화 할때 옵션을 정할 수 있는데

옵션은 아래와 같다

// 덧붙이기 ( 없으면 생성)
FileMode.Append

// 새로생성 ( 이미 있는경우 IOException 발생)
FileMode.Create

// 새로생성 ( 덮어쓰기 , 문제 있다)
FileMode.CreateNew

// 열기 (없으면 FileNotFoundException 발생)
FileMode.Open

// 열기 (없으면 생성)
FileMode.OpenOrCreate

//파일을 비우고 열기
FileMode.Truncate

 

 

FileStream fs - new FileStream("log.txt", FileMode.Append)

log파일은 계속해서 추가되어야 하므로 append를 선택

 

해당 파일에 추가하기 위해

string first_line = $"[COMPANY_NAME{"]",-5} {"[",5}TABLE_NAME{"]",-5} {"[",5}COLUMN_NAME{"]",-5} {"[",5}ACTION{"]",-5} {"[",5}ISC{"]",-5} {"[",5}TEXT{"]",-5}";
            //파일 IO추가 ( 로그파일 )
            FileStream fs = new FileStream(logFileName, FileMode.Append);
            StreamWriter sw = new StreamWriter(fs);
            if(fs.Length == 0)
            {
                sw.WriteLine(first_line);
            }
            
            sw.WriteLine($"[{dr["COMPANY_NAME"].ToString()}{"]",-5} " +
                $"{"[",5}{dr["TABLE_NAME"].ToString()}{"]",-5}" +
                $" {"[",5}{dr["COLUMN_NAME"].ToString()}{"]",-5} " +
                $"{"[",5}{dr["ACTION"].ToString()}{"]",-5}" +
                $" {"[",5}{(  dr["ISC"].ToString() == "Y" ? "성공" : "실패")}{"]",-5} " +
                $"{"[",5}{dr["TEXT"].ToString()}{"]",-5}" );
                                            
            sw.Flush();                           
            sw.Close();                              
            fs.Close();                             

로그처럼 보이게 하려고 형식이랑 좀 넣엇는데

string 크기제한을 거는 방법을 모르겠어서 패스..

이부분을 해야할듯

 

아무튼 StreamWriter를 사용해서 읽고 추가하면 됨.

반응형

'Study > C#' 카테고리의 다른 글

[C#] Sealed  (0) 2022.04.12
[C#] C#에서 POST방식으로 특정 URL로 데이터 전송  (0) 2022.04.07
[C#] C#에서 DataTable 을 JSON으로 변경  (0) 2022.04.07
[C#] Oracle 연결해서 써먹기  (0) 2021.04.23
[C#] C#에서의 배열  (0) 2021.03.04

댓글