Source (소스)
- 정의: 데이터를 읽어오는 곳, 즉 입력 스트림(input stream)의 출처입니다.
- 예시:
- 파일에서 데이터를 읽어오는 경우, 파일이 소스입니다.
- 네트워크 소켓에서 데이터를 읽어오는 경우, 소켓이 소스입니다.
- 키보드 입력을 읽어오는 경우, 키보드가 소스입니다.
Target (타겟)
- 정의: 데이터를 쓰는 곳, 즉 출력 스트림(output stream)의 목적지입니다.
- 예시:
- 파일에 데이터를 쓰는 경우, 파일이 타겟입니다.
- 네트워크 소켓으로 데이터를 보내는 경우, 소켓이 타겟입니다.
- 화면에 데이터를 출력하는 경우, 화면이 타겟입니다.
바이트 스트림 (Byte Stream)
- 정의: 데이터를 바이트 단위로 읽고 쓰는 스트림입니다. 8비트(byte) 단위로 데이터를 처리합니다.
- 사용 용도: 이미지, 오디오, 비디오, 바이너리 파일 등 텍스트가 아닌 데이터를 처리할 때 사용합니다.
- 주요 클래스:
- 입력 스트림: InputStream, FileInputStream, BufferedInputStream
- 출력 스트림: OutputStream, FileOutputStream, BufferedOutputStream
문자 스트림 (Character Stream)
- 정의: 데이터를 문자 단위로 읽고 쓰는 스트림입니다. 16비트(character) 단위로 데이터를 처리합니다.
- 사용 용도: 텍스트 데이터를 처리할 때 사용합니다. 예를 들어, 텍스트 파일을 읽거나 쓸 때 사용합니다.
- 주요 클래스:
- 입력 스트림: Reader, FileReader, BufferedReader
- 출력 스트림: Writer, FileWriter, BufferedWriter
자바에서 데이터를 읽어들이기 위해 주로 사용되는 두 가지 클래스는 BufferedInputStream과 Scanner입니다. 이 두 클래스는 각각 다른 용도로 사용되며, 기능과 성능 측면에서 차이가 있습니다.
BufferedInputStream
정의: BufferedInputStream은 바이트 단위로 데이터를 읽는 데 사용됩니다. 내부 버퍼를 사용하여 입력 효율성을 높입니다.
용도: 대용량의 바이너리 데이터를 읽어들일 때 주로 사용됩니다. 파일, 이미지, 비디오 등의 바이너리 데이터를 처리할 때 적합합니다.
특징:
- 버퍼링: 데이터를 메모리 내의 버퍼에 저장하여 여러 번의 IO 호출을 줄입니다.
- 바이트 스트림: 데이터를 바이트 단위로 읽습니다.
- 성능: 큰 파일을 읽을 때 성능이 좋습니다. 버퍼링을 통해 디스크 IO 작업을 줄이기 때문입니다.
Scanner
정의: Scanner는 텍스트 입력을 분석할 때 사용됩니다. 정규 표현식이나 구분자를 사용하여 입력을 토큰(token) 단위로 분리할 수 있습니다.
용도: 텍스트 파일이나 사용자 입력을 읽어들이고, 이를 분석하여 처리할 때 사용됩니다. 텍스트 데이터를 줄, 단어, 정수, 실수 등으로 구분하여 읽을 때 적합합니다.
특징:
- 구분자: 기본 구분자는 공백이지만, 다른 구분자로 설정할 수 있습니다.
- 텍스트 스트림: 데이터를 문자 단위로 읽습니다.
- 편의성: 정수, 실수 등 다양한 데이터 타입을 쉽게 읽을 수 있는 메서드를 제공합니다.
- 유연성: 정규 표현식을 사용하여 입력을 쉽게 분석할 수 있습니다.
'JAVA > Thread,Io' 카테고리의 다른 글
| Java.io (txt,디렉토리 생성 및 내용 삽입) (0) | 2024.06.12 |
|---|