System.IO 및 C#를 사용 하 여 텍스트 파일을 읽는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 306777 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR306777
이 문서는 Microsoft Visual Basic.NET 버전을 참조 하십시오. 302309.

이 문서에서는 다음 Microsoft.NET Framework 클래스 라이브러리 네임 스페이스를 참조합니다.
  • System.IO
  • System.Collections
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 텍스트 파일 (.txt)에서 정보를 검색 한 다음 ArrayList 클래스를 사용 하 여 사용자에 게 정보를 표시 합니다 방법을 보여 줍니다.

요구 사항

Microsoft Visual C#

텍스트 파일을 읽는 Visual C#

해당 파일에 쓸 필요가 없는 경우에 파일을 열고 파일에 대 한 읽기 액세스 읽기는 입/출력 (IO) 기능의 중요 한 부분입니다. 이 예제에서는 읽 텍스트 파일을 읽는 데 유용 하지만 이진 파일에 대 한 부적절 한 인 파일을 엽니다. 이 예제에서는 파일 열기에 사용할 수 있는 여러 가지 방법 중 하나를 사용 합니다.

파일에서 검색 된 정보를 저장 하는 데 사용할 수 있는 여러 데이터 구조 이지만, ArrayList 클래스를 사용 하기 쉬운 구조입니다. 파일을 열고 파일을 읽을 System.IO 네임 스페이스에서 특별히 System.IO.StreamReader 클래스 개체이 예제를 사용 합니다.

참고 이 샘플에서는 몇 가지 형태의 읽을 텍스트 (.txt) 파일을 해야 합니다.

로드 하 고 텍스트 파일을 통해 Visual C#에서 읽을 수 다음과 같이 하십시오.
  1. Microsoft Visual Studio 시작 합니다.
  2. Visual C#에서 새 콘솔 응용 프로그램을 만듭니다. Visual Studio 정적 클래스 에서 빈 main () 프로시저가 만들어집니다.
  3. 프로젝트가 System 네임 스페이스에는 적어도 참조를 확인 합니다. 나중에 코드에서이 네임 스페이스의 선언을 한정 하지 않아도 있도록 시스템System.IOSystem.Collections 네임 스페이스에 using 문을 사용 합니다. 이러한 문은 다른 선언 앞에 사용 해야 합니다.
    using System;
    using System.IO;
    using System.Collections;
    					
  4. 읽 파일을 열기, StreamReader 개체의 새 인스턴스를 만들고 해당 파일의 경로 생성자에는 다음과 같이 전달:
    StreamReader objReader = new StreamReader("c:\\test.txt");
    					
  5. 처리 하는 동안 파일의 각 행을 저장할 문자열 변수가 있어야 합니다. 이러한 행을 하는 ArrayList에 추가할 것 이므로 선언 하 고 해당 형식의 개체를 만들 수도 있습니다.
    string sLine="";
    ArrayList arrText = new ArrayList();
    					
  6. 여러 가지 방법으로 한 번에 전체 파일을 읽는 ReadToEnd 메서드를 포함 한 파일을 읽을 수 있습니다. 그러나이 이때 ReadLine 메서드를 사용 파일 한 줄에 한 행씩 불러올 수 있습니다. 파일의 끝에 도달 하면 루프를 종료할 수 있는 방법을 제공 하는 null이 반환 됩니다. 파일에서 각 줄을 읽을 때 줄을 ArrayList 클래스에 삽입 합니다 ArrayListAdd 메서드를 사용할 수 있습니다.
    while (sLine != null)
    {
    	sLine = objReader.ReadLine();
    	if (sLine != null)
    		arrText.Add(sLine);
    }
    objReader.Close();
    					
  7. For Each 루프를 사용 하 여 ArrayList 를 새로 채워진된 내용을 콘솔에 다음과 같이 작성 합니다.
    foreach (string sOutput in arrText)
    	Console.WriteLine(sOutput);
    Console.ReadLine();
    					
  8. 저장 하 고 콘솔 파일 목록을 만드는 코드를 실행 합니다.

전체 코드 목록

using System;
using System.IO;
using System.Collections;

namespace TextFileReader_csharp
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	class Class1
	{
		static void Main(string[] args)
		{
			StreamReader objReader = new StreamReader("c:\\test.txt");
			string sLine="";
			ArrayList arrText = new ArrayList();

			while (sLine != null)
			{
				sLine = objReader.ReadLine();
				if (sLine != null)
					arrText.Add(sLine);
			}
                        objReader.Close();

			foreach (string sOutput in arrText)
				Console.WriteLine(sOutput);
			Console.ReadLine();
		}
	}
}
				

문제 해결

파일 I/O, 다음 항목을 포함 하 여 작업 하는 경우를 고려해 야 하는 몇 가지 방법이 있습니다.
  • 언제 든 지 파일에 액세스 하는 것입니다 읽거나 쓰려고 시도 하는 파일 시스템에 되지 않거나 사용할 수 있는 가능성.
  • 파일을 처리 하기 전에이 예제에서는 파일 전체를 메모리로 읽어 옵니다. 파일이 너무 커서 메모리에 저장할 수 있는 경우에 발생할 수 또는 파일을 액세스할 수 있는 권한이 없습니다.
이러한 상황에 발생 하는 예외 발생. 항상 이러한 일반적인 문제를 처리 하는 try...catch 블록을 제공 하는 것이 좋습니다입니다.

속성

기술 자료: 306777 - 마지막 검토: 2012년 10월 16일 화요일 - 수정: 3.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2008 Express Edition
키워드:?
kbcollections kbhowtomaster kbio kbmt KB306777 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:306777

피드백 보내기

 

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