문자스트림

문자 스트림은 입출력 단위가 문자가 된다.


|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

+ Recent posts