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

자바 ObjectOutputStream 클래스

자바 ObjectOutputStream 클래스

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

ObjectOutputStream java.io 클래스 패키지는 ObjectInputStream에서 읽을 수 있는 개체를 작성하는 데 사용할 수 있습니다. .

OutputStream 확장 추상 클래스.

<시간>

ObjectOutputStream 작업

기본적으로 ObjectOutputStream 클래스 이름과 객체 값을 사용하여 Java 객체를 인코딩합니다. 따라서 해당 스트림을 생성합니다. 이 프로세스를 직렬화라고 합니다.

변환된 스트림은 파일에 저장할 수 있고 네트워크 간에 전송할 수 있습니다.

참고 :ObjectOutputStream 클래스는 Serializable을 구현하는 객체만 작성합니다. 상호 작용. 스트림에 쓰는 동안 개체를 직렬화해야 하기 때문입니다.

<시간>

ObjectOutputStream 생성

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

// Creates a FileOutputStream where objects from ObjectOutputStream are written
FileOutputStream fileStream = new FileOutputStream(String file);

// Creates the ObjectOutputStream
ObjectOutputStream objStream = new ObjectOutputStream(fileStream);

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

<시간>

ObjectOutputStream의 메소드

ObjectOutputStream 클래스는 OutputStream에 있는 다양한 메서드에 대한 구현을 제공합니다. 수업.

write() 메소드

<시간>

예제 1:자바 ObjectOutputStream

ObjectOutputStream을 사용하는 방법을 살펴보겠습니다. 파일에 개체를 저장하고 ObjectInputStream 파일에서 해당 개체를 읽으려면

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");

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

            // writes objects to output stream
            output.writeInt(data1);
            output.writeObject(data2);

            // Reads data using the ObjectInputStream
            FileInputStream fileStream = new FileInputStream("file.txt");
            ObjectInputStream objStream = new ObjectInputStream(fileStream);

            System.out.println("Integer data :" + objStream.readInt());
            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:자바 ObjectOutputStream

다른 예를 들어 보겠습니다.

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 dog1 = new Dog("Tyson", "Labrador");

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

            // Creates an ObjectOutputStream
            ObjectOutputStream objOut = new ObjectOutputStream(fileOut);

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

            // Reads the object
            FileInputStream fileIn = new FileInputStream("file.txt");
            ObjectInputStream objIn = new ObjectInputStream(fileIn);

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

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

            objOut.close();
            objIn.close();
        }

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

출력

Dog Name: Tyson
Dog Breed: Labrador

위의 예에서 우리는

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

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

<시간>

ObjectOutputStream의 다른 메서드

메소드 설명
flush() 출력 스트림의 모든 데이터를 지웁니다.
drain() 버퍼링된 모든 데이터를 출력 스트림에 넣습니다.
close() 출력 스트림을 닫습니다

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


java

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