ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파일 읽기, StreamReader
    C# 2021. 10. 2. 02:13

    인스턴스를 사용하여 StreamReader 파일에서 텍스트를 읽기.

    using System;
    using System.IO;

    class Test
    {
        public static void Main()
        {
            try
            {
                // 인스턴스 생성
                // using 을 사용함으로서, 사용후에 close 하게 된다.
                using (StreamReader sr = new StreamReader("TestFile.txt", Encoding.UTF8))
                {
                    string line;
                    // 파일 끝까지 읽어서 출력.
                    while ((line = sr.ReadLine()) != null)
                    {
                        Console.WriteLine(line);
                    }
                }
            }
            catch (Exception e)
            {
                // 에러 처리.
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            }
        }
    }

     

     

    개체를 인스턴스화하고 StreamReader ReadAsync 메서드를 호출하여 파일을 비동기적으로 읽는다.

    using System;
    using System.IO;
    using System.Threading.Tasks;

    class Example
    {
        static async Task Main()
        {
            await ReadAndDisplayFilesAsync();
        }

        static async Task ReadAndDisplayFilesAsync()
        {
            String filename = "TestFile1.txt";
            Char[] buffer;

            using (var sr = new StreamReader(filename)) {
                buffer = new Char[(int)sr.BaseStream.Length];
                await sr.ReadAsync(buffer, 0, (int)sr.BaseStream.Length);
            }

            Console.WriteLine(new String(buffer));
        }
    }
    // The example displays the following output:
    //       This is the first line of text in a relatively short file.
    //       This is the second line.
    //       This is the third line.
    //       This is the fourth and final line.

     

    생성자

    StreamReader(Stream) 지정된 스트림에 대한 StreamReader 클래스의 새 인스턴스를 초기화합니다.
    StreamReader(Stream, Boolean) 지정한 바이트 순서 표시 검색 옵션을 사용하여 지정된 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.
    StreamReader(Stream, Encoding) 지정된 문자 인코딩을 사용하여 지정된 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.
    StreamReader(Stream, Encoding, Boolean) 지정된 문자 인코딩과 바이트 순서 표시 검색 옵션을 사용하여 특정 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.
    StreamReader(Stream, Encoding, Boolean, Int32) 지정된 문자 인코딩과 바이트 순서 표시 검색 옵션, 버퍼 크기를 사용하여 특정 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.
    StreamReader(Stream, Encoding, Boolean, Int32, Boolean) 지정된 문자 인코딩과 바이트 순서 표시 검색 옵션, 버퍼 크기를 기반으로 지정된 스트림에 대해 StreamReader 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둡니다.
    StreamReader(String) 지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.
    StreamReader(String, Boolean) 지정한 바이트 순서 표시 검색 옵션을 사용하여 지정한 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.
    StreamReader(String, Encoding) 지정된 문자 인코딩을 사용하여 지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.
    StreamReader(String, Encoding, Boolean) 지정한 문자 인코딩과 바이트 순서 표시 검색 옵션을 사용하여 지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.
    StreamReader(String, Encoding, Boolean, Int32) 지정된 문자 인코딩과 바이트 순서 표시 검색 옵션을 사용하여 지정된 파일 이름에 대해 StreamReader 클래스의 새 인스턴스를 초기화합니다.

     

    메서드

    Close() StreamReader 개체와 내부 스트림을 닫고 판독기와 관련된 모든 시스템 리소스를 해제합니다.
    CreateObjRef(Type) 원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.
    (다음에서 상속됨 MarshalByRefObject)
    DiscardBufferedData() 내부 버퍼를 지웁니다.
    Dispose() 해당 TextReader 개체에서 사용하는 리소스를 모두 해제합니다.
    (다음에서 상속됨 TextReader)
    Dispose(Boolean) 내부 스트림을 닫고 StreamReader에서 사용하는 관리되지 않는 리소스를 해제하고 관리되는 리소스를 선택적으로 해제할 수 있습니다.
    Equals(Object) 지정된 개체가 현재 개체와 같은지 확인합니다.
    (다음에서 상속됨 Object)
    GetHashCode() 기본 해시 함수로 작동합니다.
    (다음에서 상속됨 Object)
    GetLifetimeService() 사용되지 않습니다.
    이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.
    (다음에서 상속됨 MarshalByRefObject)
    GetType() 현재 인스턴스의 Type을 가져옵니다.
    (다음에서 상속됨 Object)
    InitializeLifetimeService() 사용되지 않습니다.
    이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.
    (다음에서 상속됨 MarshalByRefObject)
    MemberwiseClone() 현재 Object의 단순 복사본을 만듭니다.
    (다음에서 상속됨 Object)
    MemberwiseClone(Boolean) 현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.
    (다음에서 상속됨 MarshalByRefObject)
    Peek() 사용할 수 있는 다음 문자를 반환하지만 사용하지는 않습니다.
    Read() 입력 스트림에서 다음 문자를 읽고 문자 위치를 한 문자씩 앞으로 이동합니다.
    Read(Char[], Int32, Int32) 현재 스트림에서 지정된 최대 문자를 지정된 인덱스부터 버퍼로 읽어 들입니다.
    Read(Span<Char>) 현재의 스트림에서 범위로 문자를 읽어 들입니다.
    ReadAsync(Char[], Int32, Int32) 현재 스트림에서 지정된 최대 수의 문자를 비동기적으로 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.
    ReadAsync(Memory<Char>, CancellationToken) 현재의 스트림에서 메모리 블록으로 문자를 비동기적으로 읽어 들입니다.
    ReadBlock(Char[], Int32, Int32) 현재 스트림에서 지정된 최대 수의 문자를 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.
    ReadBlock(Span<Char>) 현재의 스트림에서 문자를 읽고, 버퍼에 데이터를 씁니다.
    ReadBlockAsync(Char[], Int32, Int32) 현재 스트림에서 지정된 최대 수의 문자를 비동기적으로 읽어 이 데이터를 지정된 인덱스에서 시작되는 버퍼에 씁니다.
    ReadBlockAsync(Memory<Char>, CancellationToken) 현재의 스트림에서 비동기적으로 문자를 읽고, 버퍼에 데이터를 씁니다.
    ReadLine() 현재 스트림에서 한 줄의 문자를 읽고 데이터를 문자열로 반환합니다.
    ReadLineAsync() 현재 스트림에서 한 줄의 문자를 비동기적으로 읽고 데이터를 문자열로 반환합니다.
    ReadToEnd() 현재 위치부터 스트림 끝까지의 모든 문자를 읽습니다.
    ReadToEndAsync() 현재 위치부터 스트림 끝까지의 모든 문자를 비동기적으로 읽어서 이를 하나의 문자열로 반환합니다.
    ToString() 현재 개체를 나타내는 문자열을 반환합니다.
    (다음에서 상속됨 Object)

     

     

     

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

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

    문자열 예제  (0) 2021.10.02
    Stream 에서 한줄씩 읽기  (0) 2021.10.02
    Save file. SaveFileDialog  (0) 2021.10.02
    파일 선택. File picker  (0) 2021.10.02
    c# enumeration operation may not execute  (0) 2021.09.24
Designed by Tistory.