Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 삽입정렬
- stack
- 코딩테스트
- MSA
- 해시함수
- 자료구조
- 스터디
- 선택정렬
- heap
- 트라이
- 거품정렬
- 스택
- Timsort
- 코테준비
- 파싱
- 백준
- 연결리스트
- 퀵정렬
- 힙
- 이진트리탐색
- 큐
- 분할정복
- LinkedList
- 팀정렬
- collections.sort
- 코테
- 프로그래머스
- 15552번
- divide and conquer
- 우선순위 큐
Archives
- Today
- Total
Little bIT awesome
[Java] BufferedReader & BufferedWriter 본문
BufferedReader & BufferedWriter
BufferedReader : Scanner 와 유사
BufferedWriter : System.out.println();과 유사
기존에 사용하던 Scanner, System.out.println();보다 속도 측면에서 훨씬 빠르기 때문에 많은 데이터를 처리할 때 유리하다.
: 입력된 데이터가 바로 전달되지 않고 버퍼를 거쳐 전달되므로 데이터 처리 효율성을 높임
BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
readLine();
- readLine() 사용 시 리턴값이 String으로 고정되기 때문에 다른 타입으로 입력을 받으려면 형변환을 꼭 해주어야 한다.
- 예외 처리를 꼭 해주어야 한다. (안하면 에러)
- Line 단위로만 나눠지기 때문에 공백 단위로 데이터를 가공하는 작업이 필요하다.
형변환
// 입력 받은 데이터는 String으로 고정되기 때문에 int로 타입캐스팅 해주어야 함.
int n = Integer.parseInt(br.readLine());
에러처리 방법
(1) 클래스를 import 해준다.
import java.io.IOException;
(2) main 클래스 옆에 throws IOException를 작성한다.
public static void main(String[] args) throws IOException {}
공백 단위 가공
import java.util.StringTokenizer;
StringTokenizer st = new StringTokenizer(s); //StringTokenizer인자값에 입력 문자열 넣음
int a = Integer.parseInt(st.nextToken()); //첫번째 호출
int b = Integer.parseInt(st.nextToken()); //두번째 호출
String array[] = s.split(" "); //공백마다 데이터 끊어서 배열에 넣음
BufferedWriter
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//할당된 버퍼에 값 넣어주기
String s = "abcdefg"; //출력할 문자열
bw.write(s+"\n"); //버퍼에 있는 값 전부 출력
bw.flush(); //남아있는 데이터를 모두 출력시킴
bw.close(); //스트림을 닫음
버퍼를 잡아 놓았기 때문에 실행 후 flush() / close()를 반드시 호출해 뒤처리를 해주어야 한다.
bw.write()는 자동 개행 기능이 없기 때문에 개행을 하려면 \n을 따로 처리해주어야 한다.
'코딩테스트 > 백준' 카테고리의 다른 글
배열 역순으로 정렬하기 (0) | 2024.01.10 |
---|---|
BufferedWriter (백준 15552번) (1) | 2024.01.04 |