◈ Stream
데이터의 흐름.
◇ 스트림의 구분
1. 입력스트림 → 프로그램 → 출력스트림
2. 문 자 : 문자 스트림
데이터 : 바이트 스트림
IOStream 구분
Node Stream : 외부자원과 연결하는 것이 목적인 스트림
실제 읽고 쓰는 방법은 다양하지 않다.
Filter Stream : 읽고 쓰는 것이 목적
외부 자원과 연결 불가
기존의 NodeStream에 추가되어 기존 Stream의 읽고 쓰는 방법을 upgrade 하는 것이 목적
◇ 연결방법
1. Node Stream으로 외부자원과 연결
2. Filter Stream으로 Filtering (I/O 방법을 풍부하게 만들어 준다.)
3. Filter를 이용해서 Read / Write 실시
4. 연결 Close
◇ 스트림 구분
▷ Byte
Input Stream : [Node] File~ / System.in (키보드)
[Filter] Data~ (primitive type) / Object~ / Buffered
Output Stream : [Node] File~ / System.out (모니터)
[Filter] Data~ / Object ~ / Buffered
▷ Char(2byte)
Reader : [Node] File~
[Filter] Buffered~ / InputStream~
Writer : [Node] File~
[Filter] Buffered~ / OutputStream~ / Print~
◇ Filter Stream과 Node Stream 구분하는 법
클래스의 생성자에 Node Stream 객체를 받으면, Filter Stream.
Filter은 연결이 불가능 하므로, 연결 기능이 있는 Filter Stream을 받아야 함.
◇ 파일 읽기
※ 반드시 예외 처리를 해주어야 함. 파일 입출력 과정은 checked exception
1. 데이터를 읽기 위한 파일 열기
FileReader reader = new FileReader("Plming.txt");
2. 파일에 데이터 쓰기
char data = reader.read(); // 더 이상 읽을 값이 없을 경우 -1리턴
3. 파일 닫기
reader.close()
◇ 한꺼번에 여러 문자 읽는 read()
char arr[] = new char[50]; // 반드시 사용 전에 배열 생성
int num = reader.read(arr); // 읽은 문자 수만큼 리턴. 더 이상 읽을 값이 없을 경우 -1리턴
◇ 파일 쓰기
1. 데이터를 쓰기 위한 파일 열기
FileWriter writer = new FileWriter("Plming.txt");
2. 파일에 데이터 쓰기
writer.write(ch); // 더 이상 읽을 값이 없을 경우 -1리턴
3. 파일 닫기
writer.close()
◇ 한꺼번에 여러 문자 쓰는 writer()
char arr[] = new char[50]; // 반드시 사용 전에 배열 생성
arr에 문자열 넣는 구문
writer.write(arr);
◇ 바이트 스트림을 문자스트림으로, 문자스트림을 바이트 스트림으로
InputStreamReader / OutputStreamWriter
◇ Node Stream만으로는 데이터의 파일 입출력이 원활하지 못하므로, 각각의 원하는 데이터 타입에 맞춰서 입출력을 손쉽게 할 수 있도록 Filter Stream을 Node Stream에 연결하여 사용한다.
각 Fileter Stream은 기본데이터형(Primitive type)과 객체형(Object type)에 따라 나눠서 클래스가 정의되어 있다.
FileOutputStream FOS = new FileOutputStream(파일명); // Node Stream 객체 생성
DataOutputStream out = new FileOutputStream(FOS);
// Node Stream객체를 생성자매개변수로 Filter Stream 객체를 생성.
or
DataOutputStream out = new DataOutputStream(new FileOutputStream(파일명));
데이터의 흐름.
◇ 스트림의 구분
1. 입력스트림 → 프로그램 → 출력스트림
2. 문 자 : 문자 스트림
데이터 : 바이트 스트림
IOStream 구분
Node Stream : 외부자원과 연결하는 것이 목적인 스트림
실제 읽고 쓰는 방법은 다양하지 않다.
Filter Stream : 읽고 쓰는 것이 목적
외부 자원과 연결 불가
기존의 NodeStream에 추가되어 기존 Stream의 읽고 쓰는 방법을 upgrade 하는 것이 목적
◇ 연결방법
1. Node Stream으로 외부자원과 연결
2. Filter Stream으로 Filtering (I/O 방법을 풍부하게 만들어 준다.)
3. Filter를 이용해서 Read / Write 실시
4. 연결 Close
◇ 스트림 구분
▷ Byte
Input Stream : [Node] File~ / System.in (키보드)
[Filter] Data~ (primitive type) / Object~ / Buffered
Output Stream : [Node] File~ / System.out (모니터)
[Filter] Data~ / Object ~ / Buffered
▷ Char(2byte)
Reader : [Node] File~
[Filter] Buffered~ / InputStream~
Writer : [Node] File~
[Filter] Buffered~ / OutputStream~ / Print~
◇ Filter Stream과 Node Stream 구분하는 법
클래스의 생성자에 Node Stream 객체를 받으면, Filter Stream.
Filter은 연결이 불가능 하므로, 연결 기능이 있는 Filter Stream을 받아야 함.
◇ 파일 읽기
※ 반드시 예외 처리를 해주어야 함. 파일 입출력 과정은 checked exception
1. 데이터를 읽기 위한 파일 열기
FileReader reader = new FileReader("Plming.txt");
2. 파일에 데이터 쓰기
char data = reader.read(); // 더 이상 읽을 값이 없을 경우 -1리턴
3. 파일 닫기
reader.close()
◇ 한꺼번에 여러 문자 읽는 read()
char arr[] = new char[50]; // 반드시 사용 전에 배열 생성
int num = reader.read(arr); // 읽은 문자 수만큼 리턴. 더 이상 읽을 값이 없을 경우 -1리턴
◇ 파일 쓰기
1. 데이터를 쓰기 위한 파일 열기
FileWriter writer = new FileWriter("Plming.txt");
2. 파일에 데이터 쓰기
writer.write(ch); // 더 이상 읽을 값이 없을 경우 -1리턴
3. 파일 닫기
writer.close()
◇ 한꺼번에 여러 문자 쓰는 writer()
char arr[] = new char[50]; // 반드시 사용 전에 배열 생성
arr에 문자열 넣는 구문
writer.write(arr);
◇ 바이트 스트림을 문자스트림으로, 문자스트림을 바이트 스트림으로
InputStreamReader / OutputStreamWriter
◇ Node Stream만으로는 데이터의 파일 입출력이 원활하지 못하므로, 각각의 원하는 데이터 타입에 맞춰서 입출력을 손쉽게 할 수 있도록 Filter Stream을 Node Stream에 연결하여 사용한다.
각 Fileter Stream은 기본데이터형(Primitive type)과 객체형(Object type)에 따라 나눠서 클래스가 정의되어 있다.
FileOutputStream FOS = new FileOutputStream(파일명); // Node Stream 객체 생성
DataOutputStream out = new FileOutputStream(FOS);
// Node Stream객체를 생성자매개변수로 Filter Stream 객체를 생성.
or
DataOutputStream out = new DataOutputStream(new FileOutputStream(파일명));