728x90

BufferedRead

  • 입력 스트림에서 문자를 읽는 함수
  • 문자나 배열, 라인들을 효율적으로 읽기 위해 문자들을 버퍼에 저장하고 (버퍼링) 읽는 방법을 취한다
  • 버퍼 사이즈는 사용자가 지정할 수도 있지만 그렇지 않을 경우 기존 디폴트 사이즈가 사용됨

 

BufferedRead 사용법

BufferedReader 선언 후 readLine() 메소드를 이용해 데이터를 라인 단위로 읽어옴.

readLine()의 리턴 값은 String으로 고정되기에 다른 타입으로 입력을 받으려면 형 변환을 해주어야 한다.

* 예외처리 필수

BufferedReader 사용을 위해 throws IOException 이용하거나 try & catch를 활용해 예외처리를 해주어야한다.

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //BufferedReader선언 
String s = br.readLine(); //String 문자열 받기 
int i = Integer.parseInt(br.readLine()); //Int

 

Read한 데이터 가공

// 방법1) StringTokenizer를 이용한다. 
StringTokenizer st = new StringTokenizer(br.readLine()); //StringTokenizer인자값에 입력 문자열 넣음 
int a = Integer.parseInt(st.nextToken()); //첫번째 호출을 to int 
int b = Integer.parseInt(st.nextToken()); //두번째 호출을 to int 

// 방법2) string을 한번에 받아서 split을 이용해 배열로 변환 
String s = br.readLine(); 
String array[] = s.split(" "); //공백마다 데이터 끊어서 배열에 넣음

 

BufferedWriter

  • 한번에 모았다가 출력이 가능하다
  • 버퍼를 정의해줬기 때문에 반드시 flush()/close()를 호출해 뒤처리를 해줘야한다
  • System.out.println() 처럼 자동개행 기능이 없기 때문에 개행이 필요한 경우 \n 을 통해 따로 처리해 주어야한다.

 

BufferedWriter 사용법

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));//선언
String s = "abcdefg";//출력할 문자열
bw.write(s);//출력
bw.newLine(); //줄바꿈
bw.flush();//남아있는 데이터를 모두 출력시킴
bw.close();//스트림을 닫음

bw.newLine()이 줄바꿈이지만 적용이 안될때가 있어 bw.write(s +"\n")을 사용한다.

 

주요 Method

메서드명   기능
 BufferedReader(Reader rd)  rd에 연결되는 문자입력 버퍼스트림 생성
 BufferedWriter(Writer wt)   wt에 연결되는 문자출력 버퍼스트림 생성​
 int read()  스트림으로부터 한 문자를 읽어서 int 형으로 리턴
 int read(char[] buf)  문자배열 buf의 크기만큼 문자를 읽어들임.  읽어들인 문자 수를 리턴
 int read(char[] buf, int offset, int length)  buf의 offset위치에서부터 length 길이만큼 문자를 스트림으로부터 읽어들임​
 String readLine()  스트림으로부터 한 줄을 읽어 문자열로 리턴​​
 void mark()   현재우치를 마킹, 차 후 reset() 을 이용하여 마킹위치부터 시작함
 void reset()   마킹이 있으면 그 위치에서부터 다시시각, 그렇지 않으면 처음부터 다시시작
 long skip(int n)  n 개의 문자를 건너 뜀
 void close()  스트림 닫음
 void write(int c)  int 형으로 문자 데이터를 출력문자스트림으로 출력
 void write(String s, int offset, int length)  문자열 s를 offset 위치부터 length 길이만큼을 출력스트림으로 출력
 void write(char[] buf, int offset, int length)  문자배열 buf의 offset 위치부터 length 길이만큼을 출력스트림으로 출력​​​
 void newLine()  줄바꿈 문자열 출력
 void flush()   남아있는 데이터를 모두 출력시킴.

 

728x90

+ Recent posts