Buffer
- 어떤 데이터가 전송 될 때, 일시적으로 저장되는 메모리 영역
BufferedReader 란?
- Scanner와 달리 BufferedReader는 개행 문자(/n)만 경계로 인식
- 입력받은 데이터는 String으로 고정
- 모든 입력을 Char형으로, 버퍼를 사용하여 받음
- 전체 입력(혹은 버퍼 단위)에 대해서만 전달되기 때문에 속도 부분에서 매우 유리(Scanner보다 속도가 빠름)
BufferedReader 사용법
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 선언
String strRead = br.readLine();
}
- 입력 시, readLine( ); 메소드를 사용
- String으로 리턴 값이 고정되어 있음. 따라서 다른 타입으로 입력을 받고자 한다면 반드시 형변환이 필요
- 예외처리를 반드시 필요
- readLine()시 마다 try/catch문으로 감싸서 사용하거나
- throws IOException 을 통한 예외처리
사용 예시
String
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine(); // 한 줄을 읽어서(readLine) String타입으로 저장
System.out.println(line);
- 한 줄(readLine, 개행하기 전까지)을 읽어서 String타입으로 값을 저장함
- 입력 : 쑥쑥크는 포로리의 개발 일기 → 출력 : 쑥쑥크는 포로리의 개발 일기
String [ ] 배열
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] arr = reader.readLine().split(" "); // 한 줄을 읽어서 띄어쓰기(" ")를 기준으로 배열에 저장
for (String str : arr) {
System.out.println(str);
}
- 한 줄(readLine)을 읽어서 띄어쓰기(" ")를 기준으로 배열(String [ ] arr)에 저장
- 쑥쑥크는 포로리의 개발 일기 → [ " 쑥쑥크는", "포로리의", "개발" , "일기" ]
int
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine()); // String -> int 형 변환
System.out.println(num);
- 한 줄(readLine)을 읽어 본래의 string 타입을 int 타입으로 형 변환하여 저장
- 한 줄에 숫자가 1개만 있을 때 사용할 수 있음
int [ ] 배열
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int [] arr = new int [5];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
System.out.println(Arrays.toString(arr));
- 한 줄을 읽어 입력된 값(원래 String 타입)을 int로 변환하여, int 배열에 저장
배열 정렬하기(Arrays.sort) , 출력하기(Arrays.toString)
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int [] arr = new int [5];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(arr); // 배열을 오름차순 정렬
System.out.println(Arrays.toString(arr)); // 배열 출력
- 배열 정렬하기 Arrays.sort ( )
- 배열 출력하기 Arrays.toString( )
참고
'CODE - TEST' 카테고리의 다른 글
[JAVA] int형 정수에서 각 자리수 값 가져오기 (1) | 2024.04.21 |
---|---|
[JAVA] 백준 10448번 : 유레카 이론 (1) | 2024.01.02 |
[JAVA] 백준 2309번 : 일곱 난쟁이 (0) | 2024.01.02 |