Coding Note
[JAVA] Input/Output Stream 알아보기! 본문
지금까지 CodeUp 문제를 Scanner 클래스를 사용해 풀이해왔다.
타 블로그랑 CodeUp 질문 창을 보니 BufferedReader 입력 스트림을 사용해 풀이하는 연습을 하라고 한다!
왜?ㅋㅋㅋㅋㅋㅋ
그래서 찾아봤다!
가장 큰 이유는 속도 차이!
알고리즘 문제를 풀 때 Scanner 클래스를 사용하면 시간 초과 에러를 내는 단점이 있다고 한다.
여기서 집고 가자!
자바의 입출력을 위한 I/O 스트림
1. 입출력 스트림
- 자바는 다양한 입출력 장치에 독립적으로 일관성 있는 입출력 스트림을 통해 제공한다.
2. 입출력 스트림 구분
- 대상 기준 : 입력 스트림, 출력 스트림
- 자료의 종류 : 바이트 스트림, 문자 스트림
- 기능 : 기반 스트림, 보조 스트림
3. 스트림 종류
1) 입력 스트림
- 대상으로부터 자료를 읽어들이는 스트림
- 종류
: FileInputStream, FileReader, BufferedInputStream, BufferdReader...
2) 출력 스트림
- 대상으로 자료를 출력하는 스트림
- 종류
: FileOutputStream, FileWriter, BufferedOutputStream, BufferdWriter...
3) 성능 향상 보조 스트림
- BufferedInputStream, BufferdReader, BufferedOutputStream, BufferdWriter
- 버퍼를 이용한 해결
- 입출력 소스와 직접 작업하지 않고 메모리 버퍼(buffer)와 작업하므로 실행 성능 향상.
- 프로그램은 쓰기 속도 향상(고속 읽기)
InputStream/OutputStream - 바이트 단위 입출력을 위한 최상위 입출력 스트림 클래스
InputStreamReader/OutputStreamWriter - 문자 단위 입출력을 위한 하위 스트림 클래스
BufferedReader/BufferedWriter - 바이트 단위 입출력을 위한 스트림 클래스
FileInputStream/FileOutputStream - 바이트 단위 입출력을 위한 스트림 클래스
FileReader/FileWriter - 문자 단위 입출력을 위한 하위 스트림 클래스
'JAVA' 카테고리의 다른 글
컬렉션 프레임워크 요약 (0) | 2022.06.24 |
---|---|
JAVA - 접근제한자 (0) | 2022.04.19 |
[JAVA] CodeUp 기초 1023~ 1026 (0) | 2022.02.10 |
[JAVA] next(), nextLine() 함수의 차이점 (0) | 2022.02.09 |
[JAVA] SMS 보내기 (0) | 2021.12.14 |