안녕하세요! 이번에는 자바에서 표준 입출력, 파일 입출력, 그리고 직렬화에 대해 알아보겠습니다. 이 기능들은 데이터의 입력과 출력, 파일에 대한 처리, 객체의 저장과 복원을 위해 사용됩니다.
9.1 표준 입출력
표준 입출력은 콘솔 창을 통해 사용자와 프로그램 사이의 데이터 흐름을 의미합니다. 자바에서는 `System.in`과 `System.out` 객체를 사용하여 표준 입력과 출력을 처리합니다. `Scanner` 클래스를 통해 사용자의 입력을 받을 수 있으며, `System.out.println()` 메서드를 사용하여 콘솔에 데이터를 출력할 수 있습니다.
아래는 표준 입출력의 예제 코드입니다.
import java.util.Scanner;
public class StandardIOExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("이름을 입력하세요: ");
String name = scanner.nextLine();
System.out.print("나이를 입력하세요: ");
int age = scanner.nextInt();
System.out.println("입력된 이름: " + name);
System.out.println("입력된 나이: " + age);
scanner.close();
}
}
9.2 파일 입출력
파일 입출력은 파일에 데이터를 읽고 쓰는 기능을 제공합니다. 자바에서는 `FileInputStream`과 `FileOutputStream` 클래스를 사용하여 파일을 읽고 쓸 수 있습니다. 파일을 읽을 때는 `FileReader`나 `BufferedReader` 클래스를 사용하고, 파일에 쓸 때는 `FileWriter`나`BufferedWriter` 클래스를 사용합니다.
아래는 파일 입출력의 예제 코드입니다.
import java.io.*;
public class FileIOExample {
public static void main(String[] args) {
try {
// 파일 쓰기
FileWriter writer = new FileWriter("output.txt");
writer.write("Hello, World!");
writer.close();
// 파일 읽기
FileReader reader = new FileReader("input.txt");
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
9.3 직렬화
직렬화는 객체를 바이트 형태로 변환하여 저장하거나 네트워크로 전송할 수 있는 기능을 제공합니다. 자바에서는 `Serializable` 인터페이스를 구현한 클래스의 객체를 직렬화할 수 있습니다. 직렬화된 객체는 `ObjectOutputStream`을 사용하여 파일에 저장하거나 `ObjectInputStream`을 사용하여 객체를 복원할 수 있습니다.
아래는 직렬화의 예제 코드입니다.
import java.io.*;
public class SerializationExample {
public static void main(String[] args) {
try {
// 객체 직렬화
ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream("object.ser"));
Person person = new Person("John", 25);
outputStream.writeObject(person);
outputStream.close();
// 객체 역직렬화
ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream("object.ser"));
Person restoredPerson = (Person) inputStream.readObject();
inputStream.close();
System.out.println("복원된 객체: " + restoredPerson);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String toString() {
return "이름: " + name + ", 나이: " + age;
}
}
이상으로 자바의 표준 입출력, 파일 입출력, 그리고 직렬화에 대해 알아보았습니다. 표준 입출력을 통해 콘솔 창과 사용자 간의 데이터 흐름을 처리하고, 파일 입출력을 통해 파일에 데이터를 읽고 쓸 수 있으며, 직렬화를 통해 객체를 바이트 형태로 저장하고 복원할 수 있습니다. 이를 활용하여 데이터 처리 및 파일 다루기에 유용한 프로그램을 개발해 보세요. 감사합니다!
'JAVA' 카테고리의 다른 글
JAVA | 11. 컬렉션 프레임워크 (0) | 2023.06.11 |
---|---|
JAVA | 10. 스레드 (0) | 2023.06.10 |
JAVA | 8. 예외 처리 (0) | 2023.06.09 |
JAVA | 7. 객체 지향 프로그래밍 (0) | 2023.06.09 |
JAVA | 6. 메서드 (0) | 2023.06.09 |
댓글