Java의 입력 클래스
BufferedReader
BufferedReader를 사용하는 것이 Scanner를 사용하는 것 보다 빠르다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.in : 사용자로부터 입력을 받는 표준 입력스트림 객체
InputStream : 입력 스트림으로부터 데이터를 byte 단위로 읽어오는 byte stream
InputStreamReader : 인자로 InputStream을 취해 ReaderStream 형태로 변환
ReaderStream : InputStream과 달리 데이터를 char 단위로 처리
BufferedReader : 인자로 취한 ReaderStream에 버퍼링 기능을 추가한 입력 스트림 클래스
버퍼를 두면 파일, 네트워크와 같은 물리적인 장치에서 데이터를 사용자가 요청할 때 마다
매번 읽어오는 것이 아니라 일정량의 크기로 한번에 읽어온 후 버퍼에 보관한다.
그 후 사용자가 요구할 때 버퍼에서 읽어온다. 따라서 속도를 향상시키고 시간 부하를 줄여준다.
// da ra m G
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] s = br.readLine().split(" ");
// s[0] = "da"
// s[1] = "ra"
이렇게 공백이 있을 경우엔 StringTokenizer가 BufferedReader보다 빠르게 사용될 수 있다.
StringTokenizer
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
String A = st.nextToken();
String B = st.nextToken();
String C = st.nextToken();
String D = st.nextToken();
공백이 있을 때 뒤의 문자열이 공백처리를 당겨 채운다.
Java의 출력 클래스
일반적으로는 System.out.println() 을 사용하지만
많은 양의 출력은 BufferedWriter나 StringBuilder를 사용하는 것이 좋다.
BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // 선언
String str = "abcdef"; // 출력할 문자열
bw.write(s); // 출력
bw.newLine(); // 줄바꿈
bw.flush(); // 남아있는 데이터 모두 출력
bw.close();
BufferedWriter는 버퍼를 잡아 놓은 것이라 반드시 사용 후에 flush() 또는 close() 를 해야한다.
스트림을 닫아선 안되는 경우에 flush()를 사용하면 된다.
StringBuilder
저번에 StringBuilder에 관해 글을 짧게 썼었다.
https://daramgda.tistory.com/93
참고자료 : https://rlakuku-program.tistory.com/33
'Java 코딩테스트 공부 > Java 알고리즘 공부' 카테고리의 다른 글
Java 코딩테스트 계획표 (0) | 2022.07.08 |
---|---|
#1 String(문자열) - 10,11번 문제 (2) | 2022.06.02 |
#1 String(문자열) - 7,8,9번 문제 (0) | 2022.05.31 |
#1 String(문자열) - 6번 & String과 StringBuilder 수행시간 측정 (0) | 2022.05.29 |
#1 String(문자열) - 4,5번 문제 (0) | 2022.05.28 |