*Reader
문자 단위로 읽는 스트림 중 최상위 스트림으로 다음 하위 클래스를 주요 사용
스트림 클래스 | 설명 |
FileReader | 파일에서 문자 단위로 읽는 스트림 클래스 |
InputStreamReader | 바이트 단위로 읽은 자료를 문자로 변환해 주는 보조 스트림 클래스 |
BufferedReader | 문자로 읽을 때 배열을 제공하여 한꺼번에 읽을 수 있는 기능을 제공해 주는 보조 스트림 |
메서드 | 설명 |
int read() | 파일로부터 한 문자를 읽고 반환 |
int read(char[] buf) | 파일로부터 buf 배열에 문자를 읽음 |
int read(char[] buf, int off, int len) | 파일로부터 buf 배열에 off 위치에서부터 len 개수만큼 문자를 읽음 |
void close() | 스트림과 연결된 파일 리소스를 닫음 |
*FileReader
생성자 | 설명 |
FileReader(string name) | 파일 이름 name(경로 포함)을 매개변수로 받아 입력 스트림을 생성함 |
FileReader(File f) | File 클래스 정보를 매개변수로 받아 입력 스트림을 생성함 |
*Writer
문자 단위로 출력하는 스트림 중 최상위 스트림으로 다음 하위 클래스를 주로 사용
스트림 클래스 | 설명 |
FileWriter | 파일에 문자 단위로 출력하는 스트림 클래스 |
OutputStreamWriter | 파일에 바이트 단위로 출력한 자료를 문자로 변환해 주는 보조 스트림 |
BufferedWriter | 문자로 쓸 때 배열을 제공하여 한꺼번에 쓸 수 있는 기능을 제공해 주는 보조 스트림 |
메서드 | 설명 |
void write(int c) | 한 문자를 파일에 출력 |
void write(char[] buf) | 문자 배열 buf의 내용을 파일에 출력 |
void write(char[] buf, int off, int len) | 문자 배열 buf의 off 위치에서부터 len 개수의 문자를 파일에 출력 |
void write(String str) | 문자열 str을 파일에출력 |
void write(String str, int off, int len) | 문자열 str의 off 번째 문자부터 len 개수만큼 파일에 출력 |
void flush() | 파일에 출력하기 전에 자료가 있는 공간(출력 버퍼)을 비워 출력 |
void close() | 파일과 연결된 스트림을 닫음. 출력 버퍼도 비워짐 |
*FileWriter
생성자 | 설명 |
FileWriter(String name) | 파일 이름 name(경로 포함)을 매개변수로 받아 출력 스트림 생성 |
FileWriter(String name, boolean append) |
파일 이름 name(경로 포함)을 매개변수로 받아 출력 스트림 생성 append 값이 true이면 파일 스트림을 닫고 다시 생성할 때 파일 끝에 이어서 씀 기본 값은 false |
FileWriter(File, f) | File 클래스 정보를 매개변수로 받아 출력 스트림 생성 |
FileWriter(File f, boolean append) |
File 클래스 정보를 매개변수로 받아 출력 스트림 생성 append 값이 true 이면 파일 스트림을 닫고 다시 생성할 때 파일 끝에 이어서 씀 기본 값은 false |
*보조 스트림(=Wrapper 스트림)
입출력 대상이 되는 파일이나 네트워크에 직접 쓰거나 읽는 기능이 없음. 말 그대로 보조 가능을 추가하는 스트림
스스로는 입출력 기능이 없기 때문에 생성자의 매개변수로 다른 스트림을 받게 되면 자신이 감싸고 있는 스트림이 읽거나 쓰는 기능을 수행할 때 보조 기능을 추가함
*FilterInputStream과 FilterOutputStream
보조 스트림의 상위클래스로 모든 보조스트림은 FilterInputStream이나 FilterOutputStream을 상속받음
생성자 | 설명 |
protected FilterInputStream(InputStream in) | 생성자의 매개변수로 InputStream을 받음 |
public FilterOutpurStream(OutputStream out) | 생성자의 매개변수로 OutputStream을 받음 |
*InputStreamReader와 OutputStreamWriter
생성자 | 설명 |
InputStreamReader(InputStream in) | InputStream 클래스를 생성자의 매개변수로 받아 Reader 생성 |
InputStreamReader(InputStream in, Charset cs) |
InputStream과 Charset클래스를 매개변수로 받아 Reader 생성 |
InputStreamReader(InputStream in, CharsetDecoder dec) |
InputStream과 CharsetDecoder를 매개변수로 받아 Reader 생성 |
InputStreamReader(InputStream in, String charsetName) |
InputStream과 String으로 문자 세트 이름을 받아 Reader 생성 |
*Buffered 스트림
내부적으로 8,192바이트 크기의 배열을 가짐
버퍼링 : 이미 생성된 스트림에 배열 기능을 추가해 더 빠르게 입출력을 실행할 수 있는 기능
스트림 클래스 | 설명 |
BufferedInputStream | 바이트 단위로 읽는 스트림에 버퍼링 기능을 제공 |
BufferedOutputStream | 바이트 단위로 출력하는 스트림에 버퍼링 기능을 제공 |
BufferedReader | 문자 단위로 읽는 스트림에 버퍼링 기능을 제공 |
BufferedWriter | 문자 단위로 출력하는 스트림에 버퍼링 기능을 제공 |
생성자 | 설명 |
BufferedInputStream(InputStream in) | InputStream 클래스를 생성자의 매개변수로 받아 BufferedInputStream을 생성 |
BufferedInputStream(InputStrean in, int size) | InputStream 클래스와 버퍼 크기를 생성자의 매개변수로 받아 BufferedInputStream을 생성 |
*DataInputStream과 DataOutputStream
메모리에 저장된 0, 1 상태 그대로를 읽거나 씀
생성자 | 설명 |
DataInputStream(InputStream in) | InputStream을 생성자의 매개변수로 받아 DataInputStream을 생성 |
DataOutputStream(OutputStream out) | OutputStream을 생성자의 매개변수로 받아 DataOutStream을 생성 |
*직렬화와 역직렬화
- 직렬화 : 인스턴스의 어느 순간 상태를 그대로 저장하거나 네트워크를 통해 전송하는 것
인스턴스 내용을 연속 스트림으로 만드는 것
- 역직렬화 : 저장된 내용이나 전송 받은 내용을 다시 복원하는 것
생성자 | 설명 |
ObjectInputStream(InputStream in) | InputStream을 생성자의 매개변수로 받아 ObjectInputStream을 생성 |
ObjectOutputStream(OutputStream out) | OutputStream을 생성자의 매개변수로 받아 ObjectOutStream을 생성 |
-Serializable 인터페이스
직렬화 하겠다는 의도를 표시하기 위해 사용함
-transient 예약어
직렬화 될 수 없는 클래스가 인스턴스 변수로 있다거나 직렬화하고 싶지 않은 변수가 있을 때 사용
해당 변수는 직렬화되고 복원되는 과정에서 제외됨
*그 외의 입출력 클래스
- File 클래스
파일 자체의 경로나 정보를 할 수 있고, 생성할 수 있음
생성자 | 설명 |
File(String pathname) | pathname을 매개변수로 받아 파일을 생성 |
-RandomAccessFile 클래스
파일 입출력을 동시에 할 수 있는 클래스
임의의 위치로 이동하여 자료를 읽을 수 있음
생성자 | 설명 |
RandomAcceeFile(File file, String mode) |
입출력을 할 File과 입출력 mode를 매개변수로 받음 mode에는 읽기 전용 "r"과 읽고 쓰기 기능인 "rw" 사용 가능 |
RamdonAcceeFile(String file, String mode) |
입출력을 할 File 이름을 문자열로 받고 과 입출력 mode를 매개변수로 받음 mode에는 읽기 전용 "r"과 읽고 쓰기 기능인 "rw" 사용 가능 |
'JAVA > 기초' 카테고리의 다른 글
[JAVA 기초] 15 자바 입출력 (1) (0) | 2022.08.22 |
---|---|
[JAVA 기초] 14 예외 처리 (0) | 2022.08.21 |
[JAVA 기초] 13 내부 클래스, 람다식, 스트림 (0) | 2022.08.19 |
[JAVA 기초] 12 컬렉션 프레임워크 (2) (0) | 2022.08.19 |
[JAVA 기초] 12 컬렉션 프레임워크 (1) (0) | 2022.08.18 |
댓글