VB.NET 2008/VB - 파일 액세스

파일 액세스 - 읽기

본클라쓰 2011. 12. 23. 14:42

 

My.Computer.FileSystem 개체는 파일 및 폴더 작업을 위한 도구를 제공한다. 이 개체의 속성, 메서드 및 이벤트를 사용하여 파일과 폴더를 생성, 복사, 이동, 조사 및 삭제할 수 있다.

 

 

 

텍스트 파일 읽기

 

My.Computer.FileSystem 개체의 ReadAllText 메서드를 사용하면 텍스트 파일을 읽을 수 있다. 파일 내용이 ASCII 또는 UTF-8 등의 인코딩이 사용된 경우 파일 인코딩을 지정할 수 있다.

 

텍스트 파일을 읽으려면 My.Computer.FileSystem 개체의 ReadAllText 메서드에 경로를 지정하여 텍스트 파일의 내용을 문자열로 읽어 온다.

 

Dim fileReader As String

fileReader = My.Computer.FileSystem.ReadAllText("c:\test.txt")

 

 

인코딩된 텍스트 파일을 읽으려면 ReadAllText 메서드에 인코딩을 지정할 수 있다.

 

Dim fileReader As String

fileReader = My.Computer.FileSystem.ReadAllText("c:\test.txt", System.Text.Encoding.UTF32)

 

 

만약, 쉼표와 같은 구분자로 구분된 텍스트 파일을 읽고자 한다면 TextFieldParser 개체를 사용한다. TextFieldParser 개체를 사용하면 로그와 같은 구조화된 텍스트 파일을 쉽게 효과적으로 구문 분석할 수 있다. TextFieldType 속성은 파일이 구분된 파일인지 텍스트가 고정 너비 필드인 파일인지를 정의한다.

 

Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("c:\test.txt")

 

    MyReader.TextFieldType = FileIO.FieldType.Delimited

    MyReader.SetDelimiters(",")

 

    Dim currentRow As String()

    While Not MyReader.EndOfData

 

        Try

            currentRow = MyReader.ReadFields()

            Dim currentFiled As String

 

            For Each currentFiled In currentRow

                MsgBox(currentField)

            Next

 

        Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException

            MsgBox(ex.Message)

        End Try

 

    End While

End Using

 

 

 

이진 파일 읽기

 

이진 파일을 읽기 위해서는 My.Computer.FileSystem 개체의 ReadAllBytes 메서드를 사용한다. ReadAllBytes는 파일의 내용을 바이트 배열로 반환한다.

 

My.Computer.FileSystem.ReadAllBytes("c:\selfportrait.jpg")

 

 

 

StreamReader를 사용하여 텍스트 읽기

 

My.Computer.FileSystem 개체는 TextReader 및 TextWriter를 여는 메서드를 제공한다.

 

다음 예제는 testFile.txt 라는 파일을 열어서 한 줄을 읽은 다음 메시지 상자에 표시한다.

 

Dim fileReader As System.IO.StreamReader
fileReader = My.Computer.FileSystem.OpenTextFileReader("C:\\testfile.txt")
Dim stringReader As String
stringReader = fileReader.ReadLine()
MsgBox("The first line of the file is " & stringReader)