자바의 예외 처리와 파일 입출력이에요.
프로그램을 만들다 보면 예상치 못한 상황에 부딪힐 때가 있어요.
예를 들어, 파일이 없는 경우나 잘못된 데이터를 입력받았을 때 말이죠.
이런 예외(Exception) 상황에 안전하게 대처하는 방법과 함께, 파일을 읽고 쓰는 법을 배워볼 거예요.
■ 예외 처리란?
예외(Exception)란 프로그램 실행 중에 발생하는 예기치 못한 오류를 말해요.
자바에서는 try-catch 구문을 사용해 예외를 처리할 수 있어요.
이렇게 하면 프로그램이 갑자기 멈추는 걸 방지할 수 있죠.
public class ExceptionExample { public static void main(String[] args) { try { int result = 10 / 0; // 예외 발생 (0으로 나누기) } catch (ArithmeticException e) { System.out.println("에러 발생: " + e.getMessage()); } } } |
위 예제에서는 0으로 나누는 경우 ArithmeticException이 발생해요.
하지만 try-catch 구문 덕분에 프로그램이 멈추지 않고 에러 메시지를 출력합니다.
■ 파일 입출력(File I/O) 사용하기
이제 파일을 읽고 쓰는 방법을 배워볼게요.
자바에서는 File 클래스와 BufferedReader를 사용해 파일에서 데이터를 읽을 수 있어요.
import java.io.*; public class FileReadExample { public static void main(String[] args) { try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { System.out.println("파일 읽기 중 오류 발생: " + e.getMessage()); } } } |
BufferedReader는 파일에서 데이터를 한 줄씩 읽을 때 유용해요.
try-with-resources 구문을 사용하면 파일을 자동으로 닫아줍니다.
■ 파일에 데이터 쓰기
파일에 데이터를 쓰는 것도 어렵지 않아요!
자바의 BufferedWriter 클래스를 사용하면 간단하게 파일에 텍스트를 기록할 수 있습니다.
import java.io.*; public class FileWriteExample { public static void main(String[] args) { try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) { writer.write("안녕하세요, 자바 파일 입출력 예제입니다!"); writer.newLine(); // 줄 바꿈 } catch (IOException e) { System.out.println("파일 쓰기 중 오류 발생: " + e.getMessage()); } } } |
이 예제에서는 "output.txt" 파일에 텍스트를 기록하고 줄 바꿈까지 처리합니다.
오류가 발생해도 프로그램이 멈추지 않도록 예외를 처리했죠.
■ 예외 처리와 파일 입출력 실습
학생 성적 파일 읽고 계산하기
실제 예제를 통해 한 단계 더 나아가 봅시다.
텍스트 파일에 학생들의 성적이 들어 있고,
이 데이터를 읽어 평균 점수를 계산한다고 가정해 볼게요.
● 파일 내용 예시 (scores.txt)
Alice: 85 Bob: 78 Charlie: 92 |
● 학생 성적 계산 프로그램
import java.io.*; public class StudentScores { public static void main(String[] args) { int totalScore = 0; int studentCount = 0; try (BufferedReader reader = new BufferedReader(new FileReader("scores.txt"))) { String line; while ((line = reader.readLine()) != null) { String[] parts = line.split(": "); int score = Integer.parseInt(parts[1]); totalScore += score; studentCount++; } System.out.println("평균 점수: " + (totalScore / studentCount)); } catch (IOException | NumberFormatException e) { System.out.println("오류 발생: " + e.getMessage()); } } } |
이 프로그램은 scores.txt 파일에서 데이터를 읽고,
각 학생의 점수를 합산해 평균을 계산해 줍니다.
이때 파일 입출력 오류와 숫자 형식 오류를 모두 처리하도록 했어요.
정리하며...
오늘은 자바에서 예외 처리와 파일 입출력을 배웠어요.
프로그램이 예상치 못한 상황에서도 멈추지 않도록 try-catch로 오류를 잡아내고,
BufferedReader와 BufferedWriter로 파일을 다루는 방법을 익혔죠.
이제 데이터 파일을 다루는 프로그램을 작성할 수 있어요!
'IT > 자바 Java' 카테고리의 다른 글
자바와 PostgreSQL 연결하기 . 데이터베이스 연동 기초 (0) | 2024.11.26 |
---|---|
자바 스레드와 동기화 쉽게 이해하기 . 실습으로 배우는 병렬 처리 (0) | 2024.11.25 |
자바 OOP 기초 . 클래스와 객체의 세계로 (0) | 2024.11.23 |
자바 배열과 ArrayList HashMap 언제 무엇을 써야 할까? (0) | 2024.11.22 |
자바 조건문과 반복문 정복하기 . if-else부터 while까지 (0) | 2024.11.21 |
댓글