JAVA

Java IO 3 -Reader, Writer

devstep88 2023. 8. 24. 16:21

Reader, Writer

  • 추상클래스
  • char단위 입출력 클래스는 Reader, Writer의 후손이다.

1. Reader 클래스

 - 문자 기반 입력 스트림의 최상위 추상 클래스

 - 객체를 직접 생성할 수 없으며, 이 클래스에 존재하는 메서드는 자식 객체에게 상속 되거나 재정의 되어 사용됨

 - 모든 문자 기반 입력 클래스는 Reader 클래스를 상속받아 만들어지며, FileReader, BufferedReader, InputStream Reader 클래스가 있음

 

주요 메서드

 Method Description 
 void close()  스트림(Stream)을 닫고 그것과 관련된 시스템 리소스를 방출
 void mark(int readAheadLimit)  스트림(Stream)에 현재 위치를 표시
 boolean markSupported()  스트림(Stream)이 mark() 를 지원하는지 여부 확인
 int read()  스트림(Stream)에서 단일 문자를 읽음
 int read(char[] cbuf)  스트림(Stream)에서 cbuf배열 크기만큼 읽어 buf에 저장하고 그 크기를 반환
 int read(char[] cbuf, int off, int len)  스트림(Stream)에서 len에 지정된 크기만큼 문자를 읽어 cbuf버퍼의 off위치에 저장하고 그 크기를 반환
 int read(CharBuffer target)  CharBuffer형인 target에서 문자열일 읽어옴
 boolean ready()  다음 read()문을 수행할 수 있는지 판별, 스트림(Stream)이 준비되었는지 반환 
 void reset()  스트림(Stream)의 시작위치를 가장 가까운 mark 위치로 이동
 long skip(long n)  n만큼의 문자들을 건너뜀

 

2. Writer 클래스

 - 문자 기반 출력 스트림의 최상위 추상 클래스

 - 모든 문자 기반 출력 클래스는 Writer 클래스를 상속받아 만들어지며, FileWriter, BufferedWriter, PrintWriter, OutputStreamWriter 클래스가 있음

 

 Method Description 
 Writer append(char c)  Writer에 문자를 추가
 Writer append(CharSequence csq)  Writer에 CharSequence csq를 추가
 Writer append(CharSequence csq, int start, int end)  Writer에 CharSequence csq의 start부터 end까지의 문자를 추가
 void close()  스트림(Stream)을 닫음
 void flush()  버퍼에 남은 출력 스트림(Stream)을 출력
 void write(char[] cbuf)  배열 cbuf의 내용을 출력
 void write(char[] cbuf, int off, int len)  배열 cbuf에서 off를 시작지점으로 len만큼의 문자를 출력
 void write(int c)  c만큼의 글자 출력
 void write(String str)  문자열 str을 출력
 void write(String str, int off, int len)  문자열 str에서 off를 시작지점으로 len만큼 출력