工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java ObjectInputStream クラス

Java ObjectInputStream クラス

このチュートリアルでは、例を使用して Java ObjectOutputStream とそのメソッドについて学習します。

ObjectInputStream java.io のクラス パッケージを使用して、以前に ObjectOutputStream によって作成されたオブジェクトを読み取ることができます .

InputStream を拡張します 抽象クラス。

ObjectInputStream について学ぶ前に


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:Java 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:Java 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. Java 最終キーワード
  2. オペレーターの Java インスタンス
  3. Java 継承
  4. Java ネストされた静的クラス
  5. Java匿名クラス
  6. Java シングルトン クラス
  7. Java リフレクション
  8. JavaArrayList クラス
  9. Java ObjectOutputStream クラス
  10. Javaジェネリック
  11. Java ファイル クラス