io (입출력)가 쉬운가?✅ 결론적으로 io는 쉽지만, 파일 위치나 입출력 방식에 따라 다소 헷갈릴 수 있습니다.
java.io 패키지는 파일을 다루는 기본적인 기능을 제공하지만, 경로 설정과 예외 처리가 까다로울 수 있습니다.
그래서 상황에 따라 io보다는 NIO (java.nio) 또는 ResourceBundle 같은 방법을 쓰기도 합니다.
io는 쉽지만 헷갈릴 수 있는 부분IOException)BufferedReader, BufferedWriter 사용 여부)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를 사용하면 성능이 좋아짐.
io보다 쉬운 방법이 있나?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 없이도 가능.
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!", "파일 쓰기 간단!"));
}
}
✔️ 한 줄 코드로 파일 쓰기 가능!
io가 쉬운가?)io는 쉽지만, 상황에 따라 더 좋은 방법이 있다.FileReader, FileWriter)은 간단하지만 버퍼링, 예외 처리, 경로 문제 때문에 불편할 수 있음.java.nio.file.Files를 사용하면 코드가 간결해짐.ResourceBundle을 이용하면 설정 파일 (.properties) 관리가 쉬움.📌 👉 Java의 io 자체는 쉽지만, 더 나은 대안이 많으니 적절한 방법을 선택하는 게 중요! 😊