ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • System.IO - FileStream
    C# 2019. 6. 11. 20:07

     

     

    1. FileMode

     

    Append 6

    해당 파일이 있을 경우 파일을 열고 파일의 끝까지 검색하거나 새 파일을 만듭니다. Append 권한이 필요합니다. FileMode.Append는 FileAccess.Write와 함께만 사용할 수 있습니다. 파일이 끝나기 이전 위치까지 검색하려고 하면 IOException 예외를 throw하고 읽기 시도가 실패하면 NotSupportedException 예외를 throw합니다.

    Create 2

    운영 체제에서 새 파일을 만들도록 지정합니다. 파일이 이미 있으면 해당 파일을 덮어씁니다. Write 권한이 필요합니다. FileMode.Create는 파일이 없으면 CreateNew를 사용하고, 파일이 있으면 Truncate를 사용하도록 요청하는 것과 마찬가지입니다. 파일이 이미 있지만 숨김 파일이면 UnauthorizedAccessException 예외가 throw됩니다.

    CreateNew 1

    운영 체제에서 새 파일을 만들도록 지정합니다. Write 권한이 필요합니다. 파일이 이미 있으면 IOException 예외가 throw됩니다.

    Open 3

    운영 체제에서 기존 파일을 열도록 지정합니다. 파일을 열 수 있는지 여부는 FileAccess 열거형에서 지정된 값에 따라 달라집니다.파일이 없으면 FileNotFoundException 예외가 throw됩니다.

    OpenOrCreate 4

    파일이 있으면 운영 체제에서 파일을 열고 그렇지 않으면 새 파일을 만들도록 지정합니다. FileAccess.Read를 사용하여 파일을 여는 경우 Read 권한이 필요합니다. 파일 액세스가 FileAccess.Write이면 Write 권한이 필요합니다. FileAccess.ReadWrite를 사용하여 파일을 여는 경우 Read Write 권한이 모두 필요합니다.

    Truncate 5

    운영 체제에서 기존 파일을 열도록 지정합니다. 파일을 열면 크기가 0바이트가 되도록 잘라야 합니다. Write 권한이 필요합니다. FileMode.Truncate로 연 파일에서 읽으려고 하면 ArgumentException 예외가 발생합니다.

     

    2. FileAccess

     

    FileAccess.ReadWrite 파일을 읽고 쓸 수 있다.
    FileAccess.Read 파일을 읽을 때 사용한다.
    FileAccess.Write 파일을 쓸 때 사용한다.

     

    using System; 
    using System.IO; 
    using System.Text; 

    namespace ConsoleApp133 

        class Program 
        { 
            static void Main() 
            { 
                FileReading fr = new FileReading(); 
                string fname = @"C:\Users\ghcho\Desktop\tistory\sample.txt"
                fr.FileReads(fname); 
            } 
        } 
        class FileReading 
        { 
            public void FileReads(string fname) 
            { 
                if (!File.Exists(fname)) 
                { 
                    Console.WriteLine("{0}이 없습니다.", fname); 
                    return
                } 
                FileStream fs = null; 
                StreamReader sr = null; 
                try 
                { 
                    fs = new FileStream(fname, FileMode.Open, FileAccess.Read); 
                    sr = new StreamReader(fname, Encoding.Default); 
                    string message = string.Empty; 
                    while ((message = sr.ReadLine()) != null) 
                    { 
                        Console.WriteLine(message); 
                    } 
                } 
                catch (IOException ee) 
                { 
                    Console.WriteLine(ee.Message); 
                } 
                finally 
                { 
                    sr.Close(); 
                    fs.Close(); 
                } 
            } 
        } 
    }

     

    출처 : 초보자를 위한 C# 200제 , https://docs.microsoft.com/ko-kr/dotnet/api/system.io.filemode?view=netframework-4.8

     

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

    System.Collections  (0) 2019.06.12
    delegate  (0) 2019.06.10
    메모리의 특징 이해하기  (0) 2019.06.10
    C# polymorphism (2/4) - Override  (0) 2019.06.06
    Indexer  (0) 2019.06.06
Designed by Tistory.