io와 bundle

moon.kick·2025년 3월 5일

iobundle이란?

iobundle은 Java에서 파일 입출력과 리소스 번들(Resource Bundle)과 관련된 개념입니다. 각각의 역할을 설명해드릴게요.


1. io (입출력, Input/Output)

io입출력을 의미하며, Java에서는 java.io 패키지에 포함되어 있습니다.
파일을 읽고 쓰거나, 네트워크 데이터를 주고받을 때 사용하는 기본적인 입출력 기능을 제공합니다.

자주 사용하는 java.io 클래스

클래스설명
File파일을 생성, 삭제, 정보 확인 (파일 존재 여부, 크기 등)
FileInputStream파일에서 바이트 단위로 읽기
FileOutputStream파일에 바이트 단위로 쓰기
BufferedReader텍스트 파일을 효율적으로 읽기
BufferedWriter텍스트 파일을 효율적으로 쓰기
ObjectInputStream객체를 파일에서 읽기 (직렬화된 객체 읽기)
ObjectOutputStream객체를 파일에 저장 (직렬화된 객체 저장)

예제: 파일에서 텍스트 읽기 (io 사용)

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFileExample {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

✔️ BufferedReaderFileReader를 사용하여 "example.txt" 파일을 한 줄씩 읽어 출력하는 코드입니다.


2. bundle (리소스 번들, Resource Bundle)

bundle다국어 지원 및 설정 파일 관리에 사용하는 개념입니다.
Java에서는 java.util.ResourceBundle 클래스를 이용해 다양한 언어로 된 텍스트 또는 설정값을 로드할 수 있습니다.

리소스 번들의 특징

  • .properties 파일을 사용하여 키-값 쌍을 저장.
  • 언어별로 여러 파일을 만들어 다국어 지원 가능 (messages_en.properties, messages_ko.properties 등).
  • ResourceBundle 클래스를 사용하여 쉽게 불러올 수 있음.

예제: 다국어 지원 (bundle 사용)

📂 프로젝트 구조

/src
  ├── Messages_en.properties
  ├── Messages_ko.properties
  └── ResourceBundleExample.java

📄 Messages_en.properties (영어)

greeting = Hello!
farewell = Goodbye!

📄 Messages_ko.properties (한국어)

greeting = 안녕하세요!
farewell = 안녕히 가세요!

📄 ResourceBundleExample.java

import java.util.Locale;
import java.util.ResourceBundle;

public class ResourceBundleExample {
    public static void main(String[] args) {
        // 한국어 리소스 번들 불러오기
        ResourceBundle bundle_ko = ResourceBundle.getBundle("Messages", new Locale("ko"));
        System.out.println("Korean Greeting: " + bundle_ko.getString("greeting"));
        System.out.println("Korean Farewell: " + bundle_ko.getString("farewell"));

        // 영어 리소스 번들 불러오기
        ResourceBundle bundle_en = ResourceBundle.getBundle("Messages", new Locale("en"));
        System.out.println("English Greeting: " + bundle_en.getString("greeting"));
        System.out.println("English Farewell: " + bundle_en.getString("farewell"));
    }
}

실행 결과

Korean Greeting: 안녕하세요!
Korean Farewell: 안녕히 가세요!
English Greeting: Hello!
English Farewell: Goodbye!

✔️ ResourceBundle.getBundle("Messages", new Locale("ko"))를 사용하여 "Messages_ko.properties" 파일을 로드하고, "greeting" 키의 값을 가져와 출력합니다.


정리

개념설명관련 패키지
io파일 입출력, 데이터를 읽고 쓰는 기능java.io
bundle다국어 지원, 설정 파일 관리java.util
  • io파일에서 데이터를 읽고 쓰는 역할 (FileReader, BufferedReader 등 사용).
  • bundle다국어 지원 및 설정값 관리 (ResourceBundle 사용).

이제 iobundle의 차이점을 이해했나요? 😊

profile
@mgkick

0개의 댓글