문자 스트림은 입출력 단위가 문자가 된다.
|Reader와 Writer 클래스
Reader클래스의 메소드
int read( ) : 한 바이트를 읽어서 int 타입으로 반환, 읽을 값이 없으면 -1을 반환
int read(byte[] buf) : buf의 크기만큼 데이터를 읽어서 buf에 저장하고 읽은 바이트 수를 반환
int read(byte[] buf, int offset, int length) : length만큼의 데이터를 읽어서 buf의 offset 위치에 저장하고 읽은 바이트 수를반환
void mark(int readAheadLimit) : 스트림의 현재 위치를 표시해 놓는다.
boolean markSupported( ) : 마크 기능이 지원되는지 여부를 반환
abstract void close( ) : 스트림을 닫고 모든 자원을 반납
boolean ready( ) : 스트림이 읽을 준비가 되었는지 여부를 반환
void reset( ) : 스트림을 리셋
long skip(long n) : n개의 문자를 건너뛴다.
Writer클래스의 메소드
void write(int data) : data의 하위 8비트를 출력
void write(byte[] buf) : buf[]에 저장된 바이트들을 출력
void write(byte[] buf, int offset, int length) : buf의 offset 위치에 length만큼의 바이트를 출력
void mark(int readAheadLimit) : 스트림의 현재 위치를 표시해 놓는다.
abstract void flush( ) : 스트림 버퍼의 데이터를 모두 출력
abstract void close( ) : 스트림을 닫고 모든 자원을 반납
Writer append(char c) : 문자 c를 스트림에 추가
void write(String str) : 문자열을 출력
void write(String str, int off, int len) : 문자열에서 지정된 범위를 출력
|FileReader와 FileWriter 클래스
파일로부터 텍스트 데이터를 읽고 쓰는데 사용
FileReader의 생성자
FileReader(File file) : 주어진 file을 이용하여 새로운 FileReader 객체를 생성
FileReader(String fileName) : 주어진 파일의 이름을 이용하여 새로운 FileReader 객체를 생성
FileWriter의 생성자
FileWriter(File file) : 주어진 File 객체를 이용하여서 새로운 FileWriter 객체를 생성
FileWriter(String fileName) : 주어진 파일 이름을 이용하여서 새로운 FileWriter 객체를 생성
FileWriter(Stirng fileName, boolean append) : append가 true이면 주어진 파일의 끝에 텍스트를 추가
<예제>
출력결과
->문자열을 파일에 저장할 때는 write( ) 메소드를 호출하고 문자열 객체를 매개 변수로 주면된다.
->문자를 하나씩 읽을 때는 int 타입 변수를 char로 형변환
|InputStreamReader와 OutputStreamWriter 클래스
바이트 스트림과 문자 스트림을 연결하는 두 개의 범용 브릿지 스트림.
InputStreamReader는 바이트 스트림을 문자 스트림으로 변환. 효율성을 위해 InputStreamReader를 BufferedReader로 감싸는것이 좋다
ex) BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
OutputStreamWriter는 문자 스트림을 바이트 스트림으로 변환. 효율성을 위해 BufferedWriter로 감싸는것이 좋다.
ex) BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
|BufferedReader와 BufferedWriter 클래스
'Programming Language > Java' 카테고리의 다른 글
9. 네트워크 프로그래밍 (0) | 2016.06.10 |
---|---|
8. 입출력 - 형식 입출력 (0) | 2016.06.10 |
6. 입출력-바이트스트림 (0) | 2016.06.08 |
5. 스레드 (0) | 2016.06.08 |
4. 예외처리 (0) | 2016.06.08 |