ObjectOutputStream クラス

定義

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

[Android.Runtime.Register("java/io/ObjectOutputStream", DoNotGenerateAcw=true)]
public class ObjectOutputStream : Java.IO.OutputStream, IDisposable, Java.Interop.IJavaPeerable, Java.IO.IObjectOutput
[<Android.Runtime.Register("java/io/ObjectOutputStream", DoNotGenerateAcw=true)>]
type ObjectOutputStream = class
    inherit OutputStream
    interface IObjectOutput
    interface IDataOutput
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
継承
ObjectOutputStream
属性
実装

注釈

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。 オブジェクトは、ObjectInputStream を使用して読み取り (再構成) できます。 オブジェクトの永続的なストレージは、ストリームの ファイルを使用して実現できます。 ストリームがネットワーク ソケット ストリームの場合、オブジェクトは別のホストまたは別のプロセスで再構成できます。

java.io.Serializable インターフェイスをサポートするオブジェクトのみをストリームに書き込むことができます。 シリアル化可能な各オブジェクトのクラスは、クラスの名前とシグネチャ、オブジェクトのフィールドと配列の値、初期オブジェクトから参照される他のオブジェクトのクロージャなど、エンコードされます。

メソッド writeObject を使用して、ストリームにオブジェクトを書き込みます。 文字列や配列を含むすべてのオブジェクトは、writeObject を使用して書き込まれます。 複数のオブジェクトまたはプリミティブをストリームに書き込むことができます。 オブジェクトは、対応する ObjectInputstream から、同じ型で、書き込まれたのと同じ順序で読み取り返す必要があります。

プリミティブ データ型は、DataOutput の適切なメソッドを使用してストリームに書き込むこともできます。 文字列は、writeUTF メソッドを使用して記述することもできます。

オブジェクトの既定のシリアル化メカニズムでは、オブジェクトのクラス、クラス シグネチャ、およびすべての非一時的フィールドと非静的フィールドの値が書き込まれます。 (一時的または静的フィールドを除く) 他のオブジェクトを参照すると、それらのオブジェクトも書き込まれます。 1 つのオブジェクトへの複数の参照は、元のオブジェクトの書き込み時と同じ図形にオブジェクトのグラフを復元できるように、参照共有メカニズムを使用してエンコードされます。

たとえば、ObjectInputStream: <br の例で読み取ることができるオブジェクトを書き込む場合>

FileOutputStream fos = new FileOutputStream("t.tmp");
                 ObjectOutputStream oos = new ObjectOutputStream(fos);

                 oos.writeInt(12345);
                 oos.writeObject("Today");
                 oos.writeObject(new Date());

                 oos.close();

シリアル化および逆シリアル化プロセス中に特別な処理を必要とするクラスは、次の厳密なシグネチャを持つ特別なメソッドを実装する必要があります: <br>

private void readObject(java.io.ObjectInputStream stream)
                throws IOException, ClassNotFoundException;
            private void writeObject(java.io.ObjectOutputStream stream)
                throws IOException
            private void readObjectNoData()
                throws ObjectStreamException;

writeObject メソッドは、対応する readObject メソッドがオブジェクトを復元できるように、その特定のクラスのオブジェクトの状態を書き込みます。 メソッドは、オブジェクトのスーパークラスまたはサブクラスに属する状態に関係する必要はありません。 状態は、writeObject メソッドを使用して ObjectOutputStream に個々のフィールドを書き込むか、DataOutput でサポートされているプリミティブ データ型のメソッドを使用して保存されます。

シリアル化では、java.io.Serializable インターフェイスを実装していないオブジェクトのフィールドは書き出されません。 シリアル化できないオブジェクトのサブクラスは、シリアル化できます。 この場合、シリアル化できないクラスには、フィールドの初期化を許可する引数なしのコンストラクターが必要です。 この場合、サブクラスは、シリアル化不可能なクラスの状態を保存して復元する必要があります。 そのクラスのフィールドにアクセスできる (パブリック、パッケージ、または保護されている) 場合や、状態の復元に使用できる get メソッドと set メソッドがある場合がよくあります。

オブジェクトのシリアル化を防ぐには、NotSerializableException をスローする writeObject メソッドと readObject メソッドを実装します。 例外は ObjectOutputStream によってキャッチされ、シリアル化プロセスが中止されます。

Externalizable インターフェイスを実装すると、オブジェクトは、オブジェクトのシリアル化されたフォームの内容と形式を完全に制御することを想定できます。 Externalizable インターフェイスの writeExternal および readExternal のメソッドは、オブジェクトの状態を保存および復元するために呼び出されます。 クラスによって実装された場合、ObjectOutput と ObjectInput のすべてのメソッドを使用して、独自の状態を書き込んで読み取ることができます。 発生したバージョン管理を処理するのは、オブジェクトの役割です。

列挙型定数は、通常のシリアル化可能または外部化可能なオブジェクトとは異なる方法でシリアル化されます。 列挙型定数のシリアル化された形式は、その名前だけで構成されます。定数のフィールド値は送信されません。 列挙型定数をシリアル化するために、ObjectOutputStream は定数の name メソッドによって返される文字列を書き込みます。 他のシリアル化可能または外部化可能なオブジェクトと同様に、列挙型定数は、シリアル化ストリームで後続に出現するバック参照のターゲットとして機能できます。 列挙型定数をシリアル化するプロセスはカスタマイズできません。列挙型によって定義されたクラス固有の writeObject メソッドと writeReplace メソッドは、シリアル化中に無視されます。 同様に、serialPersistentFields または serialVersionUID フィールド宣言も無視されます。すべての列挙型の固定 serialVersionUID は 0L です。

シリアル化可能なフィールドと外部化可能なデータを除くプリミティブ データは、ブロック データ レコードの ObjectOutputStream に書き込まれます。 ブロック データ レコードは、ヘッダーとデータで構成されます。 ブロック データ ヘッダーは、マーカーとヘッダーの後に続くバイト数で構成されます。 連続するプリミティブ データ書き込みは、1 つのブロック データ レコードにマージされます。 ブロック データ レコードに使用されるブロック係数は 1024 バイトです。 各ブロック データ レコードは最大 1024 バイトまで入力されるか、ブロック データ モードが終了するたびに書き込まれます。 ObjectOutputStream メソッド writeObject、defaultWriteObject、および writeFields の呼び出しは、最初に既存のブロック データ レコードを終了します。

JDK1.1 に追加されました。

の Java ドキュメント java.io.ObjectOutputStream

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

ObjectOutputStream()

ObjectOutputStream のこの実装で使用されるプライベート データを割り当てる必要がないように、ObjectOutputStream を完全に再実装するサブクラスに方法を提供します。

ObjectOutputStream(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

ObjectOutputStream(Stream)

指定した OutputStream に書き込む ObjectOutputStream を作成します。

プロパティ

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
JniPeerMembers

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

PeerReference

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

メソッド

AnnotateClass(Class)

サブクラスでは、クラス データをストリームに格納できるように、このメソッドを実装できます。

AnnotateProxyClass(Class)

サブクラスでは、このメソッドを実装して、動的プロキシ クラスの記述子と共にストリームにカスタム データを格納できます。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Close()

この出力ストリームを閉じ、このストリームに関連付けられているシステム リソースを解放します。

(継承元 OutputStream)
DefaultWriteObject()

現在のクラスの非静的フィールドと非一時的フィールドをこのストリームに書き込みます。

Dispose()

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
Dispose(Boolean)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
Drain()

ObjectOutputStream 内のバッファーされたデータをドレインします。

EnableReplaceObject(Boolean)

ストリーム内のオブジェクトを置き換えるようにストリームを有効にします。

Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
Flush()

この出力ストリームをフラッシュし、バッファー内の出力バイトを強制的に書き出します。

(継承元 OutputStream)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
JavaFinalize()

ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。

(継承元 Object)
PutFields()

ストリームに書き込まれる永続的なフィールドをバッファーに格納するために使用される オブジェクトを取得します。

ReplaceObject(Object)

このメソッドを使用すると、ObjectOutputStream の信頼できるサブクラスで、シリアル化中に 1 つのオブジェクトを別のオブジェクトに置き換えることができるようになります。

Reset()

Reset は、ストリームに既に書き込まれているオブジェクトの状態を無視します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
ToArray<T>()

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
UseProtocolVersion(ObjectStreamProtocol)

ストリームの書き込み時に使用するストリーム プロトコルのバージョンを指定します。

Wait()

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。

(継承元 Object)
Wait(Int64)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Write(Byte[])

b.length指定したバイト配列からこの出力ストリームにバイトを書き込みます。

(継承元 OutputStream)
Write(Byte[], Int32, Int32)

lenオフセットoffから始まる指定したバイト配列のバイトをこの出力ストリームに書き込みます。

(継承元 OutputStream)
Write(Int32)

バイトを書き込みます。

WriteAsync(Byte[])

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 OutputStream)
WriteAsync(Byte[], Int32, Int32)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 OutputStream)
WriteAsync(Int32)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 OutputStream)
WriteBoolean(Boolean)

ブール値を書き込みます。

WriteByte(Int32)

8 ビット バイトを書き込みます。

WriteBytes(String)

文字列をバイトシーケンスとして書き込みます。

WriteChar(Int32)

16 ビット文字を書き込みます。

WriteChars(String)

文字列を文字のシーケンスとして書き込みます。

WriteClassDescriptor(ObjectStreamClass)

指定したクラス記述子を ObjectOutputStream に書き込みます。

WriteDouble(Double)

64 ビット倍精度浮動小数点型 (double) を書き込みます。

WriteFields()

バッファー内のフィールドをストリームに書き込みます。

WriteFloat(Single)

32 ビット浮動小数点を書き込みます。

WriteInt(Int32)

32 ビット int を書き込みます。

WriteLong(Int64)

64 ビット長を書き込みます。

WriteObject(Object)

指定したオブジェクトを ObjectOutputStream に書き込みます。

WriteObjectOverride(Object)

サブクラスが既定の writeObject メソッドをオーバーライドするために使用するメソッド。

WriteShort(Int32)

16 ビット短い を書き込みます。

WriteStreamHeader()

writeStreamHeader メソッドが用意されているため、サブクラスは独自のヘッダーをストリームに追加または先頭に追加できます。

WriteUnshared(Object)

"非共有" オブジェクトを ObjectOutputStream に書き込みます。

WriteUTF(String)

変更された UTF-8 形式でのこの文字列のプリミティブ データ書き込み。

明示的なインターフェイスの実装

IJavaPeerable.Disposed()

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
IJavaPeerable.Finalized()

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

GetJniTypeName(IJavaPeerable)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteAsync(IDataOutput, Byte[])

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteAsync(IDataOutput, Byte[], Int32, Int32)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteAsync(IDataOutput, Int32)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteBooleanAsync(IDataOutput, Boolean)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteByteAsync(IDataOutput, Int32)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteBytesAsync(IDataOutput, String)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteCharAsync(IDataOutput, Int32)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteCharsAsync(IDataOutput, String)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteDoubleAsync(IDataOutput, Double)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteFloatAsync(IDataOutput, Single)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteIntAsync(IDataOutput, Int32)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteLongAsync(IDataOutput, Int64)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteShortAsync(IDataOutput, Int32)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteUTFAsync(IDataOutput, String)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

FlushAsync(IFlushable)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

FlushAsync(IObjectOutput)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

WriteObjectAsync(IObjectOutput, Object)

ObjectOutputStream は、Java オブジェクトのプリミティブ データ型とグラフを OutputStream に書き込みます。

適用対象