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의 파일 입출력 기능을 잘 활용하여 파일 처리를 수행할 수 있습니다.
참고 자료: