C#

C# 파일 입출력 - 임시

지창준 2024. 2. 7. 10:46

C#에서 많이 사용되는 파일 처리 방법은 File 클래스와 Stream 클래스를 사용하는 방법이다.

공통적으로  System.IO 네임 스페이스에 정의되어 있다.

 

이 둘의 차이는

 

File 클래스 : 

파일의 모든 데이터를 읽어 처리한다 따라서 대용량 파일을 처리할 때는 메모리를 관리하기 어렵다.

File 클래스는 텍스트 파일 및 간단한 바이너리 파일을 다룰 때 권장

 

대표적으로 

3)ReadAllLines,  \n 을 기준으로 한 줄씩 불러오는 것(파일 안의 모드 텍스트를 라인별로 읽어 문자열 배열에 리턴)  라인단위로 읽기 
WriteAllLines() - 문자열을 파일에 쓴 다음 파일을 닫음
(파일명, arrayList.Cast().ToArray()) 이게 들어감
- string형으로 형변환(Cast), 

cast = ArrayList같은 형식이 없는 List를 쓸 때에는 Cast 함수를 이용해서 형식이 있는 IEnumerable로 바꾸어 줄 수 있습니다.


- ToArray() 오브젝트 배열형으로 바꿔줌 (ArrayList 클래스의 메소드) - 오브젝트 형식 배열 반환, 리스트타입 -> 배열타입
ArrayList, List 같은 List타입을 object 배열타입으로 Copy(복사) 하는 역할



WriteAllLines(String, IEnumerable)
Cast와 ToArray IEnumerable에 있음

File.Exists(파일명) 시스템io 네임스페이스에 존재하는 FILE 클래스의 Exists 메서드 (네임스페이스 System.IO를 사용)
- 파일이 존재하면 true, 없으면 false를 반환 (파일 존재 여부 확인)

0)ReadAllText - wtrier  파일전체 데이터 읽기
extbox1.Text = File.ReadAllText("파일명");
//파일을 연다음 모든 텍스트를 한개의 문자열로 읽어옴
즉, 함수 하나로 파일을 열고, 파일의 모든 텍스트를 문자열로 읽어 들인 다음에 파일을 닫기가 가능 

 

 

 

 


Stream 클래스 :

파일의 모든 데이터를 메모리에 올려 두지 않고 사용하기에 대용량 파일 처리 효과적이다

 

Stream이란 입출력 작업을 도와주는 중간 매개체 역할을 해준다 (데이터가 흐르는 통로)

 

대표적으로

 

1)FileStream 클래스  (네임스페이스 System.IO를 사용) - 바이트 입출력
FileStream 이름 = new File.Create("파일명", 형식);
FileStream 이름 = File.Create(파일명);
ReadLine() 불가

파일에 대해 Stream을 제공하여 동기 및 비동기 읽기/쓰기 작업을 모두 지원하는 클래스




파일에 데이터를 쓰기 위한 다양한 방법을 제공하는 클래스
2)StreamReader, StreamWirter 클래스 (네임스페이스 System.IO를 사용) - 텍스트 입출력
형태 StreamReader openfile = new StreamReader(파일명);

ReadLine() 메서드 - 한줄씩 읽기



 

 

'C#' 카테고리의 다른 글

구조체 선언 및 구조체 배열  (0) 2024.08.16
숫자 천단위 콤마(,)찍기  (0) 2024.08.16
스레드 생성 및 실행(C#)  (0) 2024.08.16
폼(Form) 추가 생성 및 호출 (C#)  (0) 2024.04.12