Programming/.NET

System.IO.File은 파일 입출력 전용의 FileStream클래습니다. 이 클래스는 파일 처리를 위한 여러 정적메소드를 제공하는데 이들 메소드를 활용하면 간단한 파일처리작업을 손쉽게 구현할 수 있습니다.

 

우선 파일을 여는 메소드부터 살펴보겠습니다.

 

using (System.IO.FileStream fs = System.IO.File.Open(@"C:\text.txt", System.IO.FileMode.Open)) {
    
}

 

파일을 열어 FileStream형식으로 반환합니다. 이 후 FileStream과 동일하게 취급할 수 있습니다.

 

using (System.IO.StreamReader ss = System.IO.File.OpenText(@"C:\text.txt")) {
    
}

 

파일을 열어 StreamReader형식으로 반환합니다. 이 후 StreamReader형식과 동일하게 취급할 수 있습니다.

 

using (System.IO.FileStream fs = System.IO.File.OpenRead(@"C:\text.txt")) {
    
}

 

파일을 읽기전용으로 오픈합니다.

 

using (System.IO.FileStream fs = System.IO.File.OpenWrite(@"C:\text.txt")) {
    
}

 

파일을 쓰기전용으로 오픈합니다.

 

string sdata = System.IO.File.ReadAllText(@"C:\text.txt");

파일 전체를 읽고 문자열로 반환합니다.

 

System.IO.File.AppendAllText(@"C:\text.txt", "abc");

파일에 특정 내용을 추가합니다.

 

System.IO.File.WriteAllText(@"C:\text.txt", "abc");

 

파일에 특정 내용을 작성합니다. 신규로 파일을 만들며 존재하는 파일이면 덮어 씁니다.

 

다음 내용은 좀 재미있는데 LINQ를 통해 파일의 특정 라인에 접근하는 방법을 보여주고 있습니다.

 

var sdata = from line in System.IO.File.ReadLines(@"C:\test.txt")
            where line.Contains("tmp")
            select line;


이 방법은 ReadAllLine으로 파일의 모든 행을 읽고 그 결과를 배열로 순회하면서 찾는것과 같은 결과를 보여주지만 성능은 상당한 차이가 있습니다.

 

참고로 File 클래스의 ReadLines메소드는 .NET Framework 4.5이상에만 존재합니다.

0 0