ObjectOutputStream クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 は、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();
シリアル化および逆シリアル化プロセス中に特別な処理を必要とするクラスは、次の厳密なシグネチャを持つ特別なメソッドを実装する必要があります。 <>
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
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
ObjectOutputStream() |
ObjectOutputStream のこの実装で使用されるプライベート データを割り当てる必要がないように ObjectOutputStream を完全に再実装するサブクラスの方法を提供します。 |
ObjectOutputStream(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
ObjectOutputStream(Stream) |
指定した OutputStream に書き込む ObjectOutputStream を作成します。 |
プロパティ
Class |
この |
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 の信頼されたサブクラスで、シリアル化中にオブジェクトを別のオブジェクトに置き換えることができるようになります。 |
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[]) |
|
Write(Byte[], Int32, Int32) |
|
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) |
"unshared" オブジェクトを 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 に書き込みます。 |