HOWTO: System.IO 및 Visual Basic .NET을 사용하여 텍스트 파일 읽기

기술 자료 번역 기술 자료 번역
기술 자료: 302309 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR302309
본 문서에서는 Microsoft 제품의 베타 릴리스에 대해 설명합니다. 본 문서의 정보는 "있는 그대로" 제공되며 사전 통보 없이 변경될 수 있습니다.

이 베타 제품은 Microsoft의 공식 제품 지원 서비스를 받을 수 없습니다. 베타 릴리스 지원에 대한 자세한 내용은 베타 제품 파일에 포함된 설명서 또는 릴리스를 다운로드한 웹 사이트에서 참조하십시오.

본 문서의 Microsoft Visual C# .NET 버전에 대한 내용은 306777을 참조하십시오.
모두 확대 | 모두 축소

이 페이지에서

요약

본 문서에서는 텍스트 파일의 정보를 검색한 다음 ArrayList 클래스를 사용하여 검색 정보를 사용자에게 표시하는 방법을 보여줍니다. 본 문서는 다음과 같은 절로 구성됩니다.

요구 사항

Microsoft Visual Basic .NET

Visual Basic .NET에서 텍스트 파일 읽기

읽기 액세스를 위한 파일 열기 및 읽기는 해당 파일에 쓸 필요가 없더라도 입/출력(IO) 기능의 중요한 부분입니다. 이 예에서는 읽을 파일을 여는데, 이는 텍스트 파일의 경우 적합하지만 이진 파일의 경우 적합하지 않습니다. 이 예에서는 파일 열기에 사용할 수 있는 여러 방법 중 하나를 사용합니다. 파일에서 검색된 정보를 저장하는 데 사용할 수 있는 데이터 구조는 많지만, 가장 사용하기 쉬운 구조는 ArrayList 클래스입니다. 이 예에서는 System.IO 이름 공간의 개체, 특히 System.IO.StreamReader 클래스를 사용하여 파일을 열고 읽습니다.

참고: 이 예제의 작업을 수행하려면 몇 가지 형태의 읽을 텍스트 파일(.txt)이 있어야 합니다.

Visual Basic .NET에서 텍스트 파일을 로드하여 읽으려면 다음 절차를 수행하십시오.
  1. Visual Studio .NET을 엽니다. Visual Basic .NET에서 새 콘솔 응용 프로그램을 만듭니다. 그러면 Visual Studio에서 빈 Main() 프로시저가 있는 모듈을 자동으로 만듭니다.
  2. 프로젝트가 System 이름 공간을 참조하는지 확인합니다. System, System.IOSystem.CollectionsImports 문을 사용합니다. 그러면 나중에 코드에서 이 이름 공간의 선언을 한정하지 않아도 됩니다. 이 명령문은 항상 선언 앞에 사용해야 합니다.
    Imports System
    Imports System.IO
    Imports System.Collections
  3. 읽을 파일을 열기 위해 StreamReader 개체의 새 인스턴스를 만들고 다음과 같이 해당 파일의 경로를 생성자에게 전달합니다.
    Dim objReader As New StreamReader("c:\test.txt")
  4. 처리하는 동안 파일의 각 행을 저장할 문자열 변수가 필요합니다. 이 행을 ArrayList에 추가할 것이므로 이러한 유형의 개체도 선언하고 만듭니다.
    Dim sLine As String = ""
    Dim arrText As New ArrayList()
  5. 전체 파일을 한꺼번에 읽는 ReadToEnd 메서드를 비롯하여 파일을 읽을 수 있는 방법에는 여러 가지가 있습니다. 하지만 이 예에서는 ReadLine 메서드를 사용하여 파일을 한번에 한 행씩 불러올 수 있습니다. 파일 끝에 도달했을 때, 이 메서드는 루프를 종료할 수 있는 "Nothing"을 반환합니다. 파일의 각 행을 읽는 동안 ArrayListAdd 메서드를 사용하여 해당 행을 ArrayList 클래스에 삽입할 수 있습니다.
    Do
        sLine = objReader.ReadLine()
        If Not sLine Is Nothing Then
            arrText.Add(sLine)
        End If
    Loop Until sLine Is Nothing
    objReader.Close()
  6. 다음과 같이 "For Each" 루프를 사용하여 새로 채운 ArrayList의 내용을 콘솔에 표시합니다.
    For Each sLine In arrText
        Console.WriteLine(sLine)
    Next
    Console.ReadLine()
  7. 코드를 저장하고 실행합니다. 그러면 파일이 콘솔에 나열됩니다.

전체 코드 예제

Imports System
Imports System.IO
Imports System.Collections

Module Module1

    Sub Main()
        Dim objReader As New StreamReader("c:\test.txt")
        Dim sLine As String = ""
        Dim arrText As New ArrayList()

        Do
            sLine = objReader.ReadLine()
            If Not sLine Is Nothing Then
                arrText.Add(sLine)
            End If
        Loop Until sLine Is Nothing
        objReader.Close()

        For Each sLine In arrText
            Console.WriteLine(sLine)
        Next
        Console.ReadLine()
    End Sub

End Module

주의 사항

파일 입/출력(I/O) 작업을 할 때는 다음 항목을 비롯하여 여러 가지 사항에 주의해야 합니다.
  • 읽거나 쓸 파일에 액세스할 때 해당 파일이 시스템에 없거나 이미 사용되고 있을 수 있습니다.
  • 이 예에서는 파일을 처리하기 전에 전체 파일을 메모리로 읽어들입니다. 파일이 너무 커서 메모리에 저장할 수 없거나 해당 파일에 대한 액세스 권한이 없을 수 있습니다.
이러한 경우에는 항상 예외가 발생합니다. 항상 try...catch 블록을 제공하여 이러한 일반적인 문제를 해결하는 것이 좋습니다.

참조

자세한 내용은 다음 Microsoft .NET SDK QuickStart Tutorials 웹 사이트를 참조하십시오.
http://www.gotdotnet.com/quickstart

속성

기술 자료: 302309 - 마지막 검토: 2001년 10월 25일 목요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual Basic .NET 2002 Standard Edition
키워드:?
kbhowto kbhowtomaster kbnokeyword KB302309

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com