// education

자바 입출력(I/O) 스트림과 파일 처리

파일을 읽고 쓰거나 키보드, 네트워크 등 외부 입력/출력 장치와 데이터를 주고받는 자바 I/O(Input/Output) 스트림 구조를 다룹니다.


1. 입출력(I/O) 스트림 용어 사전 (Glossary)


2. BufferedReader를 활용한 텍스트 파일 읽기 실습

import java.io.*;

public class FileReadExample {
    public static void main(String[] args) {
        File file = new File("sample.txt");

        // try-with-resources 구문을 활용하여 자동으로 스트림 close() 수행
        try (BufferedReader br = new BufferedReader(new FileReader(file))) {
            String line;
            System.out.println("--- [파일 내용 출력] ---");
            while ((line = br.readLine()) != null) { // 한 줄씩 읽기
                System.out.println(line);
            }
        } catch (FileNotFoundException e) {
            System.err.println("에러: 읽고자 하는 파일이 존재하지 않습니다.");
        } catch (IOException e) {
            System.err.println("파일 읽기 중 입출력 오류가 발생했습니다: " + e.getMessage());
        }
    }
}

3. 자주 묻는 질문 (Q&A)

Q. ScannerBufferedReader 중 어느 것이 입력 속도가 빠른가요? A. BufferedReader가 훨씬 빠릅니다. Scanner는 정규식을 이용해 형변환 파싱을 수행하므로 느리지만, BufferedReader는 8KB 가량의 대용량 버퍼로 한 번에 읽어오므로 대용량 파일 입출력 시 압도적으로 유리합니다.

← 이전제네릭(Generics)과 컬렉션 프레임워크 (List, Set, Map) 다음 →자바 람다식(Lambda Expression)과 함수형 인터페이스