산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 ObjectInputStream 클래스

자바 ObjectInputStream 클래스

이 자습서에서는 예제를 통해 Java ObjectOutputStream 및 해당 메서드에 대해 알아봅니다.

ObjectInputStream java.io 클래스 패키지는 이전에 ObjectOutputStream로 작성된 객체를 읽는 데 사용할 수 있습니다. .

InputStream 확장 추상 클래스.

ObjectInputStream에 대해 알아보기 전에 클래스, ObjectOutputStream 클래스에 대해 알고 있는지 확인하십시오.

<시간>

ObjectInputStream 작업

ObjectInputStream 주로 ObjectOutputStream로 작성된 데이터를 읽는 데 사용됩니다. .

기본적으로 ObjectOutputStream Java 객체를 해당 스트림으로 변환합니다. 이것을 직렬화라고 합니다. 변환된 스트림은 파일에 저장하거나 네트워크를 통해 전송할 수 있습니다.

이제 해당 객체를 읽어야 하는 경우 ObjectInputStream을 사용합니다. 스트림을 해당 객체로 다시 변환합니다. 이것을 역직렬화라고 합니다.

<시간>

ObjectInputStream 생성

객체 입력 스트림을 생성하려면 java.io.ObjectInputStream을 가져와야 합니다. 먼저 패키지. 패키지를 가져온 후 입력 스트림을 만드는 방법은 다음과 같습니다.

// Creates a file input stream linked with the specified file
FileInputStream fileStream = new FileInputStream(String file);

// Creates an object input stream using the file input stream
ObjectInputStream objStream = new ObjectInputStream(fileStream);

위의 예에서 objStream이라는 객체 입력 스트림을 만들었습니다. fileStream이라는 파일 입력 스트림과 연결된 .

이제 objStream 파일에서 개체를 읽는 데 사용할 수 있습니다.

<시간>

ObjectInputStream의 메소드

ObjectInputStream 클래스는 InputStream에 있는 다양한 메서드의 구현을 제공합니다. 수업.

read() 메소드

<시간>

예제 1:자바 ObjectInputStream

ObjectInputStream를 사용하는 방법을 살펴보겠습니다. ObjectOutputStream로 작성된 객체를 읽는 클래스 수업.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

class Main {
    public static void main(String[] args) {

        int data1 = 5;
        String data2 = "This is programiz";

        try {
            FileOutputStream file = new FileOutputStream("file.txt");
            ObjectOutputStream output = new ObjectOutputStream(file);

            // Writing to the file using ObjectOutputStream
            output.writeInt(data1);
            output.writeObject(data2);

            FileInputStream fileStream = new FileInputStream("file.txt");
            // Creating an object input stream
            ObjectInputStream objStream = new ObjectInputStream(fileStream);

            //Using the readInt() method
            System.out.println("Integer data :" + objStream.readInt());

            // Using the readObject() method
            System.out.println("String data: " + objStream.readObject());

            output.close();
            objStream.close();
        }
        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

출력

Integer data: 5
String data: This is programiz

위의 예에서는 readInt()를 사용했습니다. 및 readObject() 파일에서 정수 데이터 및 개체 데이터를 읽는 방법입니다.

여기에서는 ObjectOutputStream을 사용했습니다. 파일에 데이터를 씁니다. 그런 다음 ObjectInputStream를 사용하여 파일에서 데이터를 읽습니다. .

<시간>

예제 2:자바 ObjectInputStream

또 다른 실제 예를 살펴보겠습니다.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

class Dog implements Serializable {

    String name;
    String breed;

    public Dog(String name, String breed) {
        this.name = name;
        this.breed = breed;
    }
}

class Main {
    public static void main(String[] args) {

        // Creates an object of Dog class
        Dog dog = new Dog("Tyson", "Labrador");

        try {
            FileOutputStream file = new FileOutputStream("file.txt");

            // Creates an ObjectOutputStream
            ObjectOutputStream output = new ObjectOutputStream(file);

            // Writes objects to the output stream
            output.writeObject(dog);

            FileInputStream fileStream = new FileInputStream("file.txt");

            // Creates an ObjectInputStream
            ObjectInputStream input = new ObjectInputStream(fileStream);

            // Reads the objects
            Dog newDog = (Dog) input.readObject();

            System.out.println("Dog Name: " + newDog.name);
            System.out.println("Dog Breed: " + newDog.breed);

            output.close();
            input.close();
        }

        catch (Exception e) {
            e.getStackTrace();
        }
    }
}

출력

Dog Name: Tyson
Dog Breed: Labrador

위의 예에서 우리는

여기에서 객체 출력 스트림을 사용하여 객체를 파일에 씁니다. 그리고, 파일에서 객체를 읽어오는 객체 입력 스트림입니다.

참고 : 클래스는 Serializable을 구현합니다. 상호 작용. ObjectOutputStream 때문입니다. 직렬화 가능한 개체만 출력 스트림에 씁니다.

<시간>

ObjectInputStream의 다른 메서드

메소드 설명
available() 입력 스트림에서 사용 가능한 바이트 수를 반환합니다.
mark() 데이터를 읽은 입력 스트림의 위치를 ​​표시
reset() 표시가 설정된 입력 스트림의 지점으로 컨트롤을 반환합니다.
skipBytes() 입력 스트림에서 지정된 바이트를 건너뛰고 버립니다.
close() 객체 입력 스트림을 닫습니다

자세한 내용은 Java ObjectInputStream(공식 Java 설명서)을 참조하십시오.


java

  1. 자바 최종 키워드
  2. 자바 instanceof 연산자
  3. 자바 상속
  4. 자바 중첩 정적 클래스
  5. 자바 익명 클래스
  6. 자바 싱글톤 클래스
  7. 자바 리플렉션
  8. 자바 ObjectOutputStream 클래스
  9. 자바 제네릭
  10. 자바 파일 클래스