Java - IO API

Jean·2025년 6월 25일
0

풀스택 교육

목록 보기
5/28

🌊 스트림(Stream)이란?

  • 자바 I/O는 모든 데이터 입출력을 스트림(Stream) 방식으로 처리
  • 스트림 = 데이터의 흐름
  • 종류:
    • 입력 스트림(Input Stream): 데이터를 읽는 쪽 (예: 키보드 입력)
    • 출력 스트림(Output Stream): 데이터를 쓰는 쪽 (예: 콘솔 출력)
    • 바이트 스트림: 1바이트 단위로 처리 (영문자 기반)
    • 문자 스트림: 2바이트 단위로 처리 (한글 등 유니코드 처리 가능)

🖥️  표준 입출력 장치

방향설명
System.in표준 입력 스트림 (키보드 입력 등)
System.out표준 출력 스트림 (콘솔 출력 등)

🍎 바이트 스트림 vs 문자 스트림

구분읽고 쓰는 단위클래스 명 패턴특징
바이트 스트림1바이트InputStream, OutputStream한글(2바이트) 제대로 처리 불가
문자 스트림2바이트Reader, Writer유니코드(한글 포함) 안전하게 처리 가능

⛓️  스트림 클래스 명 규칙

클래스명 패턴스트림 종류데이터 단위
XXXInputStream입력용 스트림바이트
XXXOutputStream출력용 스트림바이트
XXXReader입력용 스트림문자
XXXWriter출력용 스트림문자

🎠  브릿지 스트림 (바이트 → 문자 변환)

  • InputStreamReader: 바이트 입력 → 문자 입력 변환
  • OutputStreamWriter: 문자 출력 → 바이트 출력 변환

바이트 스트림 ↔ 문자 스트림 사이의 다리 역할


📂 File 관련 클래스

  • File: 파일 자체를 관리하는 클래스 (입출력 스트림 아님)
    • 경로 추출
    • 생성/삭제
    • 존재 여부 확인 등
  • FileInputStream, FileOutputStream: 파일의 바이트 스트림 처리
  • FileReader, FileWriter: 파일의 문자 스트림 처리

📍 기타 특징

  • Java I/O는 운영체제(OS)와 무관하게 작동하도록 설계됨
  • 처음에는 바이트 스트림만 있었고, 이후 문자 스트림이 추가됨

💡 +⍺ try-with-resources 구문 (자바 자동 자원 관리)


✅ 개념

  • try-with-resources자원을 자동으로 닫아주는 try 구문
  • AutoCloseable 또는 Closeable을 구현한 객체는 블록 종료 시 자동으로 close() 호출됨

✅ 문법

try (자원1; 자원2; ...) {
    // 자원을 사용하는 코드
} catch (예외타입 e) {
    // 예외 처리
}

Scanner 클래스

File 클래스

  • boolean exists() ← 많이씀
  • boolean delete()
  • boolean isDirectory()
profile
햇내기 개발자 지망생

0개의 댓글