본문 바로가기
IT/자바 Java

자바로 안전한 코드 작성하기 . 예외 처리와 파일 입출력

by SidePower 2024. 11. 24.

 

자바의 예외 처리와 파일 입출력이에요. 

프로그램을 만들다 보면 예상치 못한 상황에 부딪힐 때가 있어요.

예를 들어, 파일이 없는 경우나 잘못된 데이터를 입력받았을 때 말이죠.

이런 예외(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로 오류를 잡아내고,

BufferedReaderBufferedWriter로 파일을 다루는 방법을 익혔죠.

이제 데이터 파일을 다루는 프로그램을 작성할 수 있어요!

반응형

댓글