[java] 클래스와 객체를 이용한 파일 입출력 처리에 대해 설명해주세요.

Java는 파일 입출력을 위해 java.io 패키지를 제공합니다. 이 패키지에는 파일을 읽고 쓰기 위한 다양한 클래스와 메서드가 포함되어 있습니다. 이제 클래스와 객체를 이용하여 파일 입출력을 처리하는 방법에 대해 알아보겠습니다.

1. 파일 읽기

FileInputStream 클래스를 사용하여 파일을 읽을 수 있습니다. 다음은 파일의 경로를 매개변수로 받아서 파일을 읽는 메서드를 작성한 예시입니다.

import java.io.FileInputStream;
import java.io.IOException;

public class FileReader {
    public static void readFile(String filePath) throws IOException {
        FileInputStream fileInputStream = null;
        try {
            fileInputStream = new FileInputStream(filePath);
            int data;
            while ((data = fileInputStream.read()) != -1) {
                System.out.print((char) data);
            }
        } finally {
            if (fileInputStream != null) {
                fileInputStream.close();
            }
        }
    }

    public static void main(String[] args) {
        String filePath = "파일 경로";
        try {
            readFile(filePath);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

FileInputStream 객체를 생성하고, read() 메서드를 사용하여 파일을 한 바이트씩 읽어옵니다. -1은 파일의 끝을 의미하므로, read() 메서드가 -1을 반환하면 루프를 종료합니다. 읽어온 데이터를 문자로 변환하여 출력합니다.

2. 파일 쓰기

FileOutputStream 클래스를 사용하여 파일에 내용을 쓸 수 있습니다. 다음은 파일의 경로와 쓸 내용을 매개변수로 받아서 파일을 쓰는 메서드를 작성한 예시입니다.

import java.io.FileOutputStream;
import java.io.IOException;

public class FileWriter {
    public static void writeFile(String filePath, String content) throws IOException {
        FileOutputStream fileOutputStream = null;
        try {
            fileOutputStream = new FileOutputStream(filePath);
            byte[] data = content.getBytes();
            fileOutputStream.write(data);
        } finally {
            if (fileOutputStream != null) {
                fileOutputStream.close();
            }
        }
    }

    public static void main(String[] args) {
        String filePath = "파일 경로";
        String content = "파일에 저장할 내용";
        try {
            writeFile(filePath, content);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

FileOutputStream 객체를 생성하고, 쓸 내용을 getBytes() 메서드를 사용하여 byte 배열로 변환한 후 write() 메서드로 파일에 씁니다.

3. 파일 입출력 예외 처리

파일 입출력은 예외가 발생할 수 있기 때문에 적절한 예외 처리가 필요합니다. try-finally 블록을 사용하여 입출력 스트림을 닫는 예외 처리를 수행할 수 있습니다. 또한, IOException을 상속받는 예외 타입들도 처리할 수 있습니다.

결론

Java에서 클래스와 객체를 이용하여 파일 입출력을 처리하는 방법을 알아보았습니다. FileInputStream 클래스로 파일을 읽고, FileOutputStream 클래스로 파일에 쓸 수 있습니다. 파일 입출력은 주의해야 할 예외 상황이 많기 때문에 적절한 예외 처리가 필요합니다. Java의 파일 입출력 기능을 잘 활용하여 파일 처리를 수행할 수 있습니다.

참고 자료: