EEALL@ONCE

☕ `FileInputStream`, `InputStreamReader`, `BufferedReader` 본문

언어💻/자바☕

☕ `FileInputStream`, `InputStreamReader`, `BufferedReader`

올엣원스 2023. 8. 7. 11:29
728x90

위 코드에서 `FileInputStream`, `InputStreamReader`, `BufferedReader`는 파일을 읽기 위해 서로 다른 역할을 수행합니다. 각각의 역할은 다음과 같습니다:

 



1. `FileInputStream`: 
   - 이 클래스는 파일로부터 바이트 단위로 데이터를 읽어옵니다. 즉, 파일을 바이트 스트림으로 열어서 데이터를 읽는 역할을 합니다. 
   - 파일의 내용을 바이트 단위로 직접 읽기 때문에 상대적으로 더 낮은 수준의 I/O 클래스입니다.

2. `InputStreamReader`:
   - 이 클래스는 바이트 스트림을 문자 스트림으로 변환해주는 역할을 합니다.
   - `FileInputStream`으로 읽은 바이트를 문자로 변환하는 데 사용됩니다. 예를 들어, UTF-8 인코딩으로 변환하면 파일 내용을 문자열로 읽을 수 있습니다.
   - 중간 단계로서, 문자로 변환된 스트림을 `BufferedReader`로 감싸서 라인 단위로 텍스트를 읽을 수 있도록 준비합니다.

3. `BufferedReader`:
   - 이 클래스는 문자로 변환된 스트림에서 라인 단위로 텍스트를 읽어옵니다.
   - `readLine()` 메서드를 사용하여 파일에서 한 줄씩 텍스트를 읽을 수 있습니다. 텍스트가 더 이상 없으면 `null`을 반환합니다.
   - 버퍼링 기능을 제공하여 읽기 속도를 향상시키고, 텍스트를 한 줄씩 읽을 수 있도록 도와줍니다.

이렇게 순차적으로 연결하여 파일을 읽으면, `BufferedReader`를 통해 텍스트를 라인 단위로 읽을 수 있으며, 파일의 인코딩 문제 등도 `InputStreamReader`를 통해 처리할 수 있습니다. 각 클래스의 역할에 따라 파일 읽기를 효율적으로 처리할 수 있습니다.

728x90