본문 바로가기
언어(Language)/Java

[Java] java.io 패키지

by 송기동 2025. 6. 23.
728x90

java.io 패키지 정의

- 입출력을(IO : Input/Output) 기능을 제공하는 자바 표준 패키지

- 다음 모든 걸 담당하는 클래스와 인터페이스의 모음

  • 파일 읽기/쓰기
  • 콘솔 입력/출력
  • 네트워크 데이터 스트림 처리
  • 메모리 스트림 처리

java.io 패키지의 주요 역할

역할 설명
파일 입출력 텍스트 파일, 바이너리 파일 읽고 쓰기
콘솔 입출력 키보드 입력 및 화면 출력
스트림 처리 데이터를 순차적으로 처리하는 통로 제공
메모리 입출력 바이트 배열, 문자열 등 메모리 기반 입출력
객체 직렬화 객체를 파일에 저장하거나 전송할 수 있도록 변환

java.io 패키지의 주요 클래스 분류

1. 바이트 스트림 클래스 (1바이트 단위 처리)

종류 읽기용 쓰기용
기본 스트림 InputStream OutputStream
파일 처리 FileInputStream FileOutputStream
버퍼 사용 BufferedInputStream BufferedOutputStream
메모리 처리 ByteArrayInputStream ByteArrayOutputStream
필터링 FilterInputStream FilterOutputStream

 

2. 문자 스트림 클래스(2바이트 유니코드 문자 처리)

종류 읽기용 쓰기용
기본 스트림 Reader Writer
파일 처리 FileReader FileWriter
버퍼 사용 BufferedReader BufferedWriter
메모리 처리 CharArrayReader CharArrayWriter
필터링 FilterReader FilterWriter

 

3. 객체 직렬화 및 기타 유틸리티

클래스 설명
ObjectInputStream / ObjectOutputStream 객체를 읽고/쓰기 (직렬화)
Serializable 객체를 저장/전송 가능하게 만드는 인터페이스
PrintStream println(), printf() 등 텍스트 출력 지원
DataInputStream / DataOutputStream 기본형 데이터(byte, int 등) 입출력 지원
File 파일 자체의 경로, 크기, 존재 여부 등을 다룸 (입출력 아님!)
IOException IO 관련 예외의 최상위 예외 클래스

java.io 패키지 클래스 예시 요약

클래스명 기능
File 파일 및 디렉토리의 정보 확인, 생성, 삭제 등
FileReader / FileWriter 텍스트 파일 문자 기반 입출력
FileInputStream / FileOutputStream 이미지, 영상 등 바이너리 파일 입출력
BufferedReader / BufferedWriter 고속 텍스트 파일 입출력
ObjectOutputStream / ObjectInputStream 객체 저장 및 복원
PrintStream 콘솔 출력 (System.out이 이것!)
IOException 모든 IO 관련 예외의 부모 예외

java.io 의 핵심 특징

특징 설명
계층 구조 상위 추상 클래스(InputStream, Reader 등)로부터 다양한 클래스가 파생됨
단방향 스트림 대부분 입력 또는 출력 중 한 방향만 처리 (양방향 아님)
스트림 기반 데이터는 한 방향으로 "흐르는" 구조
느리면 버퍼 사용 BufferedXXX 계열로 성능 향상
예외 처리 필요 모든 IO 작업은 IOException 처리 필수

예시1. 텍스트 파일 한 줄씩 읽기

import java.io.*;

public class ReadFile {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println("읽은 줄: " + line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

예시2. 파일 존재 여부 확인 (File 클래스)

import java.io.File;

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

        if (file.exists()) {
            System.out.println("파일 있음");
        } else {
            System.out.println("파일 없음");
        }
    }
}

 

728x90

'언어(Language) > Java' 카테고리의 다른 글

[Java] System 클래스  (2) 2025.06.08
[Java] Number 클래스  (1) 2025.06.08
[Java] Wrapper Class (포장 클래스)  (1) 2025.06.08
[Java] StringBuffer 클래스  (2) 2025.06.08
[Java] java.lang 패키지  (1) 2025.06.08