java.io 패키지

 

java.io 패키지는 입출력(I/O) 작업을 위한 클래스와 인터페이스를 제공합니다.

이 패키지를 사용하면 파일, 네트워크, 메모리 등 다양한 소스로부터 데이터를 읽고 쓸 수 있습니다.

다음은 java.io 패키지의 주요 클래스와 인터페이스들입니다.

 

1. 입력 스트림 (Input Stream)

입력 스트림은 바이트 단위로 데이터를 읽어오는 추상 클래스입니다. 주요 서브 클래스로는 FileInputStream, ByteArrayInputStream, ObjectInputStream 등이 있습니다.

1
2
3
4
5
6
7
8
try (FileInputStream fis = new FileInputStream(“file.txt”)) {
    int data;
    while ((data = fis.read()) != 1) {
        System.out.print((char) data);
    }
catch (IOException e) {
    e.printStackTrace();
}
cs

 

2. 출력 스트림 (Output Stream)

출력 스트림은 바이트 단위로 데이터를 쓰는 추상 클래스입니다. 주요 서브 클래스로는 FileOutputStream, ByteArrayOutputStream, ObjectOutputStream 등이 있습니다.

1
2
3
4
5
6
try (FileOutputStream fos = new FileOutputStream(“file.txt”)) {
    String data = “Hello, World!”;
    fos.write(data.getBytes());
catch (IOException e) {
    e.printStackTrace();
}
cs

 

3. 문자 입력 스트림 (Reader)

문자 입력 스트림은 문자 단위로 데이터를 읽어오는 추상 클래스입니다. 주요 서브 클래스로는 FileReader, StringReader, BufferedReader 등이 있습니다.

1
2
3
4
5
6
7
8
try (FileReader fr = new FileReader(“file.txt”)) {
    int data;
    while ((data = fr.read()) != 1) {
        System.out.print((char) data);
    }
catch (IOException e) {
    e.printStackTrace();
}
cs

 

4. 문자 출력 스트림 (Writer)

문자 출력 스트림은 문자 단위로 데이터를 쓰는 추상 클래스입니다. 주요 서브 클래스로는 FileWriter, StringWriter, BufferedWriter 등이 있습니다.

1
2
3
4
5
6
try (FileWriter fw = new FileWriter(“file.txt”)) {
    String data = “Hello, World!”;
    fw.write(data);
catch (IOException e) {
    e.printStackTrace();
}
cs

 

5. 버퍼링된 입출력 스트림 (Buffered Streams)

버퍼링된 입출력 스트림은 데이터를 버퍼에 저장하여 I/O 성능을 향상시킵니다. BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter 등이 있습니다.

1
2
3
4
5
6
7
8
try (BufferedReader br = new BufferedReader(new FileReader(“file.txt”))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
catch (IOException e) {
    e.printStackTrace();
}
cs

 

6. 직렬화 (Serialization)

직렬화는 객체를 바이트 스트림으로 변환하여 파일이나 네트워크로 전송할 수 있도록 하는 기능입니다. Serializable 인터페이스를 구현한 클래스는 직렬화될 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Person implements Serializable {
    private String name;
    private int age;
    // getters and setters
}
Person person = new Person(“John”30);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(“person.dat”))) {
    oos.writeObject(person);
catch (IOException e) {
    e.printStackTrace();
}
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(“person.dat”))) {
    Person deserializedPerson = (Person) ois.readObject();
    System.out.println(deserializedPerson.getName() + ” “ + deserializedPerson.getAge());
catch (IOException | ClassNotFoundException e) {
    e.printStackTrace();
}
cs

 

java.io 패키지는 Java에서 데이터의 입출력을 처리하는 데 필수적인 클래스들을 제공합니다. 이 패키지의 클래스들을 활용하여 파일 읽기/쓰기, 네트워크 통신, 객체 직렬화 등 다양한 I/O 작업을 수행할 수 있습니다. 또한 try-with-resources 문을 사용하면 스트림을 자동으로 닫아주므로 자원 관리가 편리해집니다.

 

탐사 샘물, 2L, 12개

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다