본문 바로가기
개발/자바

[Java] 입출력 함수(BufferedReader, BufferedWriter)

by kakk789 2022. 2. 11.

자바에서 입출력은 Scanner / System.out.print()

보통 많이 이용한다. 

하지만 간혹 알고리즘 문제를 풀다보면 더 빠르게

입력과 출력을 해야하는 상황이 생긴다.

이럴때 Bufferedreader / BufferedWriter 를 사용한다

BufferedReader

  • 말 그대로 버퍼를 이용하여 입력하는 것이다.
  • 입력 값을 한방에 출력하기 위해 버퍼에 값을 저장한다.
  • Bufferedreader는 Enter만 경계로 인식하고 받은 데이터를 String으로 고정시키기 때문에 후 가공 작업이 필요하다.
    (Scanner는 입력을 받을 때 Space, Enter를 경계로 인식하기에 입력받은 데이터에 대한 가공이 편리하다.)

BufferedWriter

  • 말 그대로 버퍼를 이용하여 출력하는 것이다.

StringTokenizer

  • StringTokenizer 의 nextToken()를 이용하면 입력 값이 공백 단위로 끊어서 저장이 된다
import java.io.*;
import java.util.StringTokenizer;
 
public class IO{
    public static void main(String[] args) throws IOException {
    
 		//2개의 입력 값을 호출 한다고 가정을 할 것임   
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        //String 받기
        String stringInput = br.readLine();   
        
        //만일 int로 받고 싶다면 
        //int intInput = Integer.parseInt(br.readLine());
        
        StringTokenizer st = new StringTokenizer(stringInput);
        int a = Integer.parseInt(st.nextToken());  // 첫번째 호출
        int b = Integer.parseInt(st.nextToken());  // 두번째 호출

 
        String p = "TestInputOutput";
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        bw.write(p + "\n"); //출력
 

        bw.flush(); // 남아있는 데이터 모두 출력
 
        bw.close();// 스트림 완전 닫기
 

    }
}

 

참고

https://doozi316.github.io/java/2021/03/22/JAVA1/

https://devlog-wjdrbs96.tistory.com/96

 

 

 

반응형

'개발 > 자바' 카테고리의 다른 글

(자바) 이클립스 자동 완성 단축키  (0) 2022.03.13
의존성 역전 원칙 (DIP, Dependency Inversion Principle)  (0) 2022.02.15
REST(Representational State Transfer)  (1) 2022.01.13
자바 2차원 배열  (0) 2022.01.10
Interface  (0) 2021.12.27

댓글