Study/Java
[Java] 입출력 API
JYHAN
2020. 8. 9. 15:33
java.util.Scanner
대량의 데이터 처리 시 수행시간이 비효율적임
nextInt(), nextDouble(), next()는 white space를 만나면 종료
nextLine() 개행(Enter)을 만나면 종료, next()와 달리 띄어쓰기를 할 수 있음(공백 포함 가능)
java.io.BufferedReader
필터스트림 유형
줄(Line)단위로 문자열 처리 기능 제공 -> readLine()
대량의 데이터 처리 시 수행시간이 효율적임
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.in은 byte단위로 읽고, BufferedReader는 char단위로 읽는다
따라서 두 방법의 단위차이를 해결하기 위해 InputStreamReader를 사용한다
byte를 char단위로 변환해주는 역할
java.lang.StringBuilder
문자열의 조작을 지원하는 클래스
자바에서 상수로 취급되는 문자열을 조작 시마다 새로운 문자열이 생성되는 것을 방지
append()
toString()
StringBuffer vs StringBuilder
StringBuffer는 멀티쓰레딩을 지원, 멀티쓰레딩이 필요없는 환경에서 비효율적
따라서 멀티스레드 관련코드가 추가되어지기 때문에 시간적으로는 상대적으로 느려지게 됩니다.
StringBuilder는 싱글쓰레딩만 지원
상황에 따라 사용할 수 있어야 한다