이 문서에서는 텍스트 파일 (.txt)에서 정보를 검색 하는 ArrayList 클래스를 사용 하 여 사용자에 게 해당 정보를 표시 하는 방법을 보여 줍니다.
많은 데이터 구조는 파일에서 검색 된 정보를 저장 하는 사용할 수 있지만 사용 하기 쉬운 구조는 ArrayList 클래스를입니다. 열고 파일을 읽을 수 System.IO 네임 스페이스에서 특히 System.IO.StreamReader 클래스 개체이 예제를 사용 합니다.
참고 이 샘플에서는 몇 가지 형태의 읽을 텍스트 (.txt) 파일을 해야 합니다.
로드 하 고 텍스트 파일을 통해 Visual C#에서 읽을 수 다음과 같이 하십시오.
요구 사항
Microsoft Visual C#요구 사항
파일에 기록 하지 않아도 되는 경우에 파일을 열고 파일에 대 한 읽기 액세스 읽기는 입/출력 (IO) 기능의 중요 한 부분입니다. 이 예제에서는 읽 텍스트 파일을 읽는 데 유용 하지만 이진 파일에 대 한 잘못 된 파일을 엽니다. 이 예제에서는 파일 열기에 사용할 수 있는 여러 가지 방법 중 하나를 사용 합니다.많은 데이터 구조는 파일에서 검색 된 정보를 저장 하는 사용할 수 있지만 사용 하기 쉬운 구조는 ArrayList 클래스를입니다. 열고 파일을 읽을 수 System.IO 네임 스페이스에서 특히 System.IO.StreamReader 클래스 개체이 예제를 사용 합니다.
참고 이 샘플에서는 몇 가지 형태의 읽을 텍스트 (.txt) 파일을 해야 합니다.
로드 하 고 텍스트 파일을 통해 Visual C#에서 읽을 수 다음과 같이 하십시오.
- Microsoft Visual Studio 시작 합니다.
- Visual C#에서 새 콘솔 응용 프로그램을 만듭니다. Visual Studio 정적 클래스 에서 빈 main () 프로시저가 만들어집니다.
- 프로젝트가 System 네임 스페이스에는 적어도 참조를 확인 합니다. 나중에 코드에서이 네임 스페이스의 선언을 한정 하지 않아도 있도록 시스템및 System.IO를 System.Collections 네임 스페이스에 using 문을 사용 합니다. 이러한 문은 다른 선언 앞에 사용 해야 합니다.
using System; using System.IO; using System.Collections;
- 읽 파일을 열기, StreamReader 개체의 새 인스턴스를 만들고 해당 파일의 경로 생성자에는 다음과 같이 전달:
StreamReader objReader = new StreamReader("c:\\test.txt");
- 처리 하는 동안 파일의 각 행을 저장할 문자열 변수가 있어야 합니다. 이러한 행을 하는 ArrayList에 추가할 것 이므로 선언 하 고 해당 형식의 개체를 만들 수도 있습니다.
string sLine=""; ArrayList arrText = new ArrayList();
- 여러 가지 방법으로 한 번에 전체 파일을 읽는 ReadToEnd 메서드를 포함 한 파일을 읽을 수 있습니다. 그러나이 이때 ReadLine 메서드를 사용 파일 한 줄에 한 행씩 불러올 수 있습니다. 파일의 끝에 도달 하면 루프를 종료할 수 있는 방법을 제공 하는 null이 반환 됩니다. 파일에서 각 줄을 읽을 때 줄을 ArrayList 클래스에 삽입 합니다 ArrayList 의 Add 메서드를 사용할 수 있습니다.
while (sLine != null) { sLine = objReader.ReadLine(); if (sLine != null) arrText.Add(sLine); } objReader.Close();
- For Each 루프를 사용 하 여 ArrayList 를 새로 채워진된 내용을 콘솔에 다음과 같이 작성 합니다.
foreach (string sOutput in arrText) Console.WriteLine(sOutput); Console.ReadLine();
- 저장 하 고 콘솔 파일 목록을 만드는 코드를 실행 합니다.
텍스트 파일을 읽는 Visual C#
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 블록을 제공 하는 것이 좋습니다.
'프로그래밍 > C#' 카테고리의 다른 글
C# 파일 비교 함수를 만드는 방법 (0) | 2013.07.24 |
---|---|
C# SQL Stored Procedure 로 DataSet 가져오기 (0) | 2013.07.19 |
C# .NET을 사용하여 순환적으로 디렉터리 검색 (0) | 2013.07.18 |
[C#] WebReqeust와 WebResponse를 이용하여 웹페이지 내용 가져오기 (0) | 2013.07.10 |
C# Invoke 사용시 간결하게 쓰는 방법 (0) | 2013.07.10 |