Char단위 입출력(Console)

말하는 감자·2024년 12월 29일
0

자바 중급

목록 보기
16/21
post-thumbnail

개념

InputStreamReader

바이트 스트림을 문자 스트림으로 변환하는데 사용
즉, 바이트 데이터를 문자 데이터로 변환하여 읽을 수 있게 해준다.

  • 키보드로 부터 입력받는 메서드 System.in은 바이트 스트림으로 제공되기 때문에, 이를 문자 스트림으로 변환하는 작업이 필요한데, 이를 InputStreamReader가 제공한다

BufferedReader

다른 Reader(예. InputStreamReader,FileReader 등)의 성능을 향상시키기 위해 사용되는 보조 클래스이다. 내부에 버퍼를 사용하여 데이터를 일괄적으로 읽고, 이를 통해 I/O 연산을 줄여 성능을 개선한다.
한 줄씩 쉽게 읽을 수 있도록 도와주는 역할
readLine() 메서드를 제공하여, 파일이나 입력 스트림에서 한 줄 씩 쉽게 읽을 수 있다.

Code 예시

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class CharIOExam {
    public static void main(String[] args) {
        BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));
        String line=null; //초기화

        try{
            line=bufferedReader.readLine(); // 한 줄 읽기
            System.out.println(line);
        }catch (Exception e){
            e.printStackTrace();
        }finally {	//리소스 해제를 finally구문에서 실행
            try {
                bufferedReader.close();
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
}

Code 2

  • BufferedReader 객체를 try()내부에서 선언하여 리소스 해제를 따로 할 필요x
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class CharIOExam {
    public static void main(String[] args) {
        String line=null; //초기화
        try(BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));){
            line=bufferedReader.readLine(); // 한 줄 읽기
            System.out.println(line);
        }catch (Exception e){
            e.printStackTrace();
        }

    }
}

결과

profile
주니어개발자(?)

0개의 댓글