58.5 텍스트 데이터를 컬렉션 데이터로 가져오기

    이번에는 텍스트 파일 데이터를 읽어 컬렉션 형태의 데이터로 읽어 오는 방법을 알아보겠습니다. 다음 내용을 입력한 후 실행해 보세요. 먼저 C 드라이브 Temp 폴더의 Src.txt 파일에 다음 데이터가 있다고 가정하겠습니다. 이 예제를 실행하려면 Src.txt 파일을 만든 후 다음 데이터를 입력하세요.

    //C:\Temp\Src.txt
    백승수,112,2019-09-01,1234
    이세영,114,2020-10-02,2345
    한라산,119,2021-11-03,3456

    텍스트 데이터를 컬렉션 데이터로 가져오기: TextToCollection.cs

    using System;
    using System.Collections.Generic;
    
    namespace DotNet
    {
        public class Record
        {
            public string Name { get; set; }
            public string PhoneNumber { get; set; }
            public DateTime BirthDate { get; set; }
            public string AuthCode { get; set; }
        }
    
        class TextToCollection
        {
            static void Main()
            {
                //① 텍스트 파일 읽기
                string[] lines =
                    System.IO.File.ReadAllLines(
                      @"C:\Temp\src.txt", System.Text.Encoding.Default);
                foreach (var line in lines)
                {
                    Console.WriteLine(line);
                }
    
                //② 문자열 배열 정보를 컬렉션 형태의 개체에 담기
                List<Record> records = new List<Record>();
                foreach (var line in lines)
                {
                    string[] splitData = line.Split(',');
                    records.Add(
                      new Record
                      {
                        Name = splitData[0],
                        PhoneNumber = splitData[1],
                        BirthDate = Convert.ToDateTime(splitData[2]),
                        AuthCode = splitData[3]
                      });
                }
    
                //③ 데이터 하나만 출력하기
                Console.WriteLine(records[0]?.Name ?? "데이터가 없습니다.");
            }
        }
    }

    실행 결과

    백승수,112,2019-09-01,1234
    이세영,114,2020-10-02,2345
    한라산,119,2021-11-03,3456
    백승수

    이 예제에서는 구분자로 콤마를 사용하는 텍스트 파일의 데이터를 읽어 List<T> 형태의 C# 컬렉션으로 변환합니다. 처럼 파일 내용을 File.ReadAllLines() 메서드로 읽은 데이터를 에서 List<Record> 형태의 리스트에 담는 작업을 보여 줍니다.

    지금은 간단한 텍스트 파일에서 컬렉션으로 데이터를 옮겨 보았는데요. 실제 현업에서는 텍스트 파일, XML 파일, JSON 파일, CSV 파일, 엑셀 파일 등 수많은 데이터 형식을 사용할 수 있습니다. 물론 그때마다 서로 다른 API를 사용해야 합니다.

    C#의 API를 사용하면 텍스트 파일 이외에도 이진 파일에 대한 입출력 기능 및 윈도 운영 체제의 레지스트리에 대한 입출력 기능을 구현할 수 있습니다. 이 부분은 마이크로소프트 Docs 온라인 설명서에서 찾아보길 권하며, 이 책에서는 다루지 않겠습니다.

    변수, 배열, 클래스, 컬렉션이 아닌 영구적으로 저장할 수 있는 파일에 데이터를 저장하고 읽어 오는 간단한 파일 처리를 학습했습니다. 일단 이 정도로 파일 처리를 다루고, 다음 강의에서 텍스트 파일이 아닌 XML과 JSON 파일을 다루는 부분으로 확장해 나가겠습니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.