JAVA

JAVA | 9. 입출력

TECH 톡마스터 2023. 6. 10.

JAVA | 9. 입출력
9. 입출력

  안녕하세요! 이번에는 자바에서 표준 입출력, 파일 입출력, 그리고 직렬화에 대해 알아보겠습니다. 이 기능들은 데이터의 입력과 출력, 파일에 대한 처리, 객체의 저장과 복원을 위해 사용됩니다.

 

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

댓글

💲 추천 글