본문 바로가기
[ Program ]/c#스터디

45. 파일읽기/쓰기

by 관이119 2021. 10. 9.

파일을 읽고 쓸려면 File 클래스를 사용하면 된다.

 

https://docs.microsoft.com/ko-kr/dotnet/api/system.io.file?view=net-5.0 

 

File 클래스 (System.IO)

단일 파일에 대한 만들기, 복사, 삭제, 이동 및 열기를 위한 정적 메서드를 제공하고 FileStream 개체 만들기를 지원합니다.Provides static methods for the creation, copying, deletion, moving, and opening of a single file

docs.microsoft.com

 

기본적인 내용은 위 경로를 읽어보자.

 

파일이나 DB 또는 네트워크로 데이터를 전송할때 대부분의 경우 내용을 변환해서 서로 주고 받게 되는데 이과정에서 데이터가 변환되는것을 직렬화(Serialization) , 역직렬화(deserialization) 또는 마샬링(marshalling) 이라고 한다.

직렬화는 CSV, XML, JSON, binary 등 여러가지로 할수 있는데 csv,xml,json 같은경우는 사람이 읽을수 있는대신 저장공간 효율이 떨어지고 변환하는데 시간이 오래 걸린다.

 

https://ko.wikipedia.org/wiki/%EB%A7%88%EC%83%AC%EB%A7%81_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99) 

 

마샬링 (컴퓨터 과학) - 위키백과, 우리 모두의 백과사전

컴퓨터 과학에서 마셜링(marshalling, l을 하나만 사용하여 marshaling이라고도 표기)이란 한 객체의 메모리에서 표현방식을 저장 또는 전송에 적합한 다른 데이터 형식으로 변환하는 과정이다. 또한

ko.wikipedia.org

 

직렬화나 마샬링은 언어나 사람마다 이야기하는 의미가 상당히 차이가 있는데 전체적인 내용은 다음 그림1으로 이해하도록하자.

그림1

 

파일도 위와 같은 형태로 전송된다고 생각하면된다.

 

<예제>

string path = @"c:\temp\MyTest.txt";
string alltext = "";
if(File.Exists(path))
{
      using(StreamReader sr = new StreamReader(path))
      {
             alltext = sr.ReadToEnd();
      }
}

 

간단한 예제를 만들었는데 File 클래스를 사용해야하니 System.IO 를 using 해야하고 파일이 존재하는지 체크한후 파일의 내용을 읽어서 alltext 에 담는 예제이다.

파일에 데이터를 쓸경우는 어떻게 하면 될지 개인적으로 찾아보자.

 

위에서 이야기한 직렬화는 다른 언어와 연동하거나 할때 오류메세지 등에서 상당히 자주보게 될것이므로 위내용은 꼭 알아두자.

 

 

 

***숙제 : 두개의 txt 파일을 합쳐서 하나의 txt 로 만들어주는 프로그램을 만들어보자.

            텍스트박스는 readonly 이며 파일경로버튼으로 파일을 선택하면 텍스트박스에 파일명이 표시되야한다.

            파일합치기를 누르면 두개의 파일 문자열이 합쳐진 파일이 정해진경로에 생성되면된다.

'[ Program ] > c#스터디' 카테고리의 다른 글

47. 유즈케이스  (0) 2021.10.09
46. 엑셀파일읽기  (0) 2021.10.09
44. 로또생성기만들기  (0) 2021.10.09
43. 제네릭  (0) 2021.10.09
42. 상속  (0) 2021.10.09

댓글