io

moon.kick·2025년 3월 5일

Java의 io (입출력)가 쉬운가?

결론적으로 io는 쉽지만, 파일 위치나 입출력 방식에 따라 다소 헷갈릴 수 있습니다.
java.io 패키지는 파일을 다루는 기본적인 기능을 제공하지만, 경로 설정과 예외 처리가 까다로울 수 있습니다.
그래서 상황에 따라 io보다는 NIO (java.nio) 또는 ResourceBundle 같은 방법을 쓰기도 합니다.


1. io는 쉽지만 헷갈릴 수 있는 부분

  • 파일을 어디에 두어야 하는지 헷갈림
  • 절대경로 vs 상대경로 문제
  • 파일이 없을 때 예외 처리 필요 (IOException)
  • 버퍼링 여부 (BufferedReader, BufferedWriter 사용 여부)

2. io의 기본적인 예제 (파일 읽기/쓰기)

📌 파일에 쓰기

import java.io.FileWriter;
import java.io.IOException;

public class WriteFileExample {
    public static void main(String[] args) {
        try (FileWriter writer = new FileWriter("test.txt")) {
            writer.write("Hello, Java IO!\n");
            writer.write("파일에 데이터 쓰기 완료.\n");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

✔️ "test.txt" 파일에 "Hello, Java IO!"를 씁니다.
✔️ try-with-resources 구문을 사용해 자동으로 파일을 닫아줍니다.


📌 파일에서 읽기

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("test.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) { // 한 줄씩 읽기
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

✔️ "test.txt" 파일을 읽어 한 줄씩 출력합니다.
✔️ BufferedReader를 사용하면 성능이 좋아짐.


3. io보다 쉬운 방법이 있나?

📌 Java 8+에서 더 쉽게 파일 읽고 쓰기 (NIO 사용)

💡 java.nio.file.Files를 사용하면 더 간단하게 처리 가능!

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class NioReadExample {
    public static void main(String[] args) throws Exception {
        List<String> lines = Files.readAllLines(Paths.get("test.txt"));
        lines.forEach(System.out::println);
    }
}

✔️ 한 줄로 파일 읽기 가능 (readAllLines)
✔️ BufferedReader 없이도 가능.

📌 Java 8+ 파일 쓰기 (Files.write)

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;

public class NioWriteExample {
    public static void main(String[] args) throws Exception {
        Files.write(Paths.get("test.txt"), Arrays.asList("Java NIO!", "파일 쓰기 간단!"));
    }
}

✔️ 한 줄 코드로 파일 쓰기 가능!


4. 결론 (io가 쉬운가?)

✔️ io는 쉽지만, 상황에 따라 더 좋은 방법이 있다.

  • ✅ 기본적인 파일 입출력 (FileReader, FileWriter)은 간단하지만 버퍼링, 예외 처리, 경로 문제 때문에 불편할 수 있음.
  • 더 쉬운 방법: java.nio.file.Files를 사용하면 코드가 간결해짐.
  • ResourceBundle을 이용하면 설정 파일 (.properties) 관리가 쉬움.

📌 👉 Java의 io 자체는 쉽지만, 더 나은 대안이 많으니 적절한 방법을 선택하는 게 중요! 😊

profile
@mgkick

0개의 댓글