ObjectOutputStream Kelas

Definisi

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

[Android.Runtime.Register("java/io/ObjectOutputStream", DoNotGenerateAcw=true)]
public class ObjectOutputStream : Java.IO.OutputStream, IDisposable, 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
Warisan
ObjectOutputStream
Atribut
Penerapan

Keterangan

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream. Objek dapat dibaca (direkonstitusi ulang) menggunakan ObjectInputStream. Penyimpanan objek persisten dapat dicapai dengan menggunakan file untuk aliran. Jika aliran adalah aliran soket jaringan, objek dapat direkonstitusi pada host lain atau dalam proses lain.

Hanya objek yang mendukung antarmuka java.io.Serializable yang dapat ditulis ke aliran. Kelas setiap objek yang dapat diserialisasikan dikodekan termasuk nama kelas dan tanda tangan kelas, nilai bidang dan array objek, dan penutupan objek lain yang direferensikan dari objek awal.

Metode writeObject digunakan untuk menulis objek ke aliran. Objek apa pun, termasuk String dan array, ditulis dengan writeObject. Beberapa objek atau primitif dapat ditulis ke aliran. Objek harus dibaca kembali dari ObjectInputstream yang sesuai dengan jenis yang sama dan dalam urutan yang sama seperti yang ditulis.

Jenis data primitif juga dapat ditulis ke aliran menggunakan metode yang sesuai dari DataOutput. String juga dapat ditulis menggunakan metode writeUTF.

Mekanisme serialisasi default untuk objek menulis kelas objek, tanda tangan kelas, dan nilai semua bidang non-sementara dan non-statis. Referensi ke objek lain (kecuali di bidang sementara atau statis) menyebabkan objek tersebut ditulis juga. Beberapa referensi ke satu objek dikodekan menggunakan mekanisme berbagi referensi sehingga grafik objek dapat dipulihkan ke bentuk yang sama seperti ketika aslinya ditulis.

Misalnya untuk menulis objek yang dapat dibaca oleh contoh di 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();

Kelas yang memerlukan penanganan khusus selama proses serialisasi dan deserialisasi harus menerapkan metode khusus dengan tanda tangan yang tepat ini: <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;

Metode writeObject bertanggung jawab untuk menulis status objek untuk kelas tertentu sehingga metode readObject yang sesuai dapat memulihkannya. Metode ini tidak perlu menyangkut dirinya sendiri dengan status milik superkelas atau subkelas objek. Status disimpan dengan menulis bidang individual ke ObjectOutputStream menggunakan metode writeObject atau dengan menggunakan metode untuk jenis data primitif yang didukung oleh DataOutput.

Serialisasi tidak menulis bidang objek apa pun yang tidak mengimplementasikan antarmuka java.io.Serializable. Subkelas Objek yang tidak dapat diserialisasikan dapat diserialisasikan. Dalam hal ini kelas yang tidak dapat diserialisasikan harus memiliki konstruktor tanpa arg untuk memungkinkan bidangnya diinisialisasi. Dalam hal ini adalah tanggung jawab subkelas untuk menyimpan dan memulihkan status kelas yang tidak dapat diserialisasikan. Sering terjadi bahwa bidang kelas tersebut dapat diakses (publik, paket, atau dilindungi) atau ada metode get dan set yang dapat digunakan untuk memulihkan status.

Serialisasi objek dapat dicegah dengan menerapkan metode writeObject dan readObject yang melempar NotSerializableException. Pengecualian akan ditangkap oleh ObjectOutputStream dan membatalkan proses serialisasi.

Menerapkan antarmuka Externalizable memungkinkan objek untuk mengasumsikan kontrol penuh atas konten dan format formulir berseri objek. Metode antarmuka Externalizable, writeExternal dan readExternal, dipanggil untuk menyimpan dan memulihkan status objek. Ketika diimplementasikan oleh kelas, mereka dapat menulis dan membaca status mereka sendiri menggunakan semua metode ObjectOutput dan ObjectInput. Merupakan tanggung jawab objek untuk menangani penerapan versi apa pun yang terjadi.

Konstanta enum diserialisasikan secara berbeda dari objek biasa yang dapat diserialisasikan atau dapat diekstrak eksternal. Bentuk berseri dari konstanta enum hanya terdiri dari namanya; nilai bidang konstanta tidak ditransmisikan. Untuk menserialisasikan konstanta enum, ObjectOutputStream menulis string yang dikembalikan oleh metode nama konstanta. Seperti objek lain yang dapat diserialisasikan atau dapat diekstrak eksternal, konstanta enum dapat berfungsi sebagai target referensi belakang yang muncul kemudian dalam aliran serialisasi. Proses di mana konstanta enum diserialisasikan tidak dapat disesuaikan; metode writeObject dan writeReplace khusus kelas apa pun yang ditentukan oleh jenis enum diabaikan selama serialisasi. Demikian pula, setiap serialPersistentFields atau deklarasi bidang serialVersionUID juga diabaikan--semua jenis enum memiliki serialversionUID tetap 0L.

Data primitif, tidak termasuk bidang yang dapat diserialisasikan dan data yang dapat di eksternalisasi, ditulis ke ObjectOutputStream dalam rekaman data blok. Rekaman data blok terdiri dari header dan data. Header data blok terdiri dari penanda dan jumlah byte untuk mengikuti header. Penulisan data primitif berturut-turut digabungkan ke dalam satu catatan data blok. Faktor pemblokiran yang digunakan untuk rekaman data blok akan menjadi 1024 byte. Setiap rekaman data blok akan diisi hingga 1024 byte, atau ditulis setiap kali ada penghentian mode data blok. Panggilan ke metode ObjectOutputStream writeObject, defaultWriteObject, dan writeFields awalnya mengakhiri rekaman data blok yang ada.

Ditambahkan dalam JDK1.1.

Java dokumentasi untuk java.io.ObjectOutputStream.

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Konstruktor

Nama Deskripsi
ObjectOutputStream()

Berikan cara untuk subkelas yang sepenuhnya melengkapi ObjectOutputStream agar tidak harus mengalokasikan data privat yang baru saja digunakan oleh implementasi ObjectOutputStream ini.

ObjectOutputStream(IntPtr, JniHandleOwnership)

Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime.

ObjectOutputStream(Stream)

Membuat ObjectOutputStream yang menulis ke OutputStream yang ditentukan.

Properti

Nama Deskripsi
Class

Mengembalikan kelas runtime dari .Object

(Diperoleh dari Object)
Handle

Handel ke instans Android yang mendasar.

(Diperoleh dari Object)
JniIdentityHashCode

Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop.

(Diperoleh dari Object)
JniManagedPeerState

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari JavaObject)
JniPeerMembers

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

PeerReference

Mendapatkan referensi objek JNI untuk peer Java ini.

(Diperoleh dari Object)
ThresholdClass

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

ThresholdType

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Metode

Nama Deskripsi
AnnotateClass(Class)

Subkelas dapat menerapkan metode ini untuk memungkinkan data kelas disimpan dalam aliran.

AnnotateProxyClass(Class)

Subkelas dapat menerapkan metode ini untuk menyimpan data kustom di aliran bersama dengan deskriptor untuk kelas proksi dinamis.

Clone()

Membuat dan mengembalikan salinan objek ini.

(Diperoleh dari Object)
Close()

Menutup aliran output ini dan merilis sumber daya sistem apa pun yang terkait dengan aliran ini.

(Diperoleh dari OutputStream)
Construct(JniObjectReference, JniObjectReferenceOptions)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari JavaObject)
DefaultWriteObject()

Tulis bidang non-statis dan non-sementara dari kelas saat ini ke aliran ini.

Dispose()

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
Dispose(Boolean)

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
DisposeUnlessReferenced()

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari JavaObject)
Drain()

Kosongkan data yang di-buffer di ObjectOutputStream.

EnableReplaceObject(Boolean)

Aktifkan aliran untuk melakukan penggantian objek di aliran.

Equals(Object)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari JavaObject)
Equals(Object)

Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini.

(Diperoleh dari Object)
Flush()

Menghapus aliran output ini dan memaksa byte output yang di-buffer untuk ditulis.

(Diperoleh dari OutputStream)
GetHashCode()

Mengembalikan nilai kode hash untuk objek .

(Diperoleh dari Object)
JavaFinalize()

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek.

(Diperoleh dari Object)
Notify()

Membangunkan satu utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
NotifyAll()

Membangunkan semua utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
PutFields()

Ambil objek yang digunakan untuk menyangga bidang persisten yang akan ditulis ke aliran.

ReplaceObject(Object)

Metode ini akan memungkinkan subkelas tepercaya ObjectOutputStream untuk mengganti satu objek dengan objek lain selama serialisasi.

Reset()

Reset akan mengalihkan status objek apa pun yang sudah ditulis ke aliran.

SetHandle(IntPtr, JniHandleOwnership)

Mengatur properti Handle.

(Diperoleh dari Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari JavaObject)
ToArray<T>()

Membuat array terkelola dari pembungkus array Java ini.

(Diperoleh dari Object)
ToString()

Mengembalikan representasi string objek.

(Diperoleh dari Object)
UnregisterFromRuntime()

Membatalkan pendaftaran peer Java ini dari runtime interop.

(Diperoleh dari Object)
UseProtocolVersion(ObjectStreamProtocol)

Tentukan versi protokol streaming yang akan digunakan saat menulis aliran.

Wait()

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>.

(Diperoleh dari Object)
Wait(Int64, Int32)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu.

(Diperoleh dari Object)
Wait(Int64)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu.

(Diperoleh dari Object)
Write(Byte[], Int32, Int32)

len Menulis byte dari array byte yang ditentukan mulai dari offset off ke aliran output ini.

(Diperoleh dari OutputStream)
Write(Byte[])

b.length Menulis byte dari array byte yang ditentukan ke aliran output ini.

(Diperoleh dari OutputStream)
Write(Int32)

Menulis byte.

WriteAsync(Byte[], Int32, Int32)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari OutputStream)
WriteAsync(Byte[])

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari OutputStream)
WriteAsync(Int32)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari OutputStream)
WriteBoolean(Boolean)

Menulis boolean.

WriteByte(Int32)

Menulis byte 8 bit.

WriteBytes(String)

Menulis String sebagai urutan byte.

WriteChar(Int32)

Menulis karakter 16 bit.

WriteChars(String)

Menulis String sebagai urutan karakter.

WriteClassDescriptor(ObjectStreamClass)

Tulis deskriptor kelas yang ditentukan ke ObjectOutputStream.

WriteDouble(Double)

Menulis ganda 64 bit.

WriteFields()

Tulis bidang yang di-buffer ke aliran.

WriteFloat(Single)

Menulis float 32 bit.

WriteInt(Int32)

Menulis int 32 bit.

WriteLong(Int64)

Menulis panjang 64 bit.

WriteObject(Object)

Tulis objek yang ditentukan ke ObjectOutputStream.

WriteObjectOverride(Object)

Metode yang digunakan oleh subkelas untuk mengambil alih metode writeObject default.

WriteShort(Int32)

Menulis 16 bit pendek.

WriteStreamHeader()

Metode writeStreamHeader disediakan sehingga subkelas dapat menambahkan atau menambahkan header mereka sendiri ke aliran.

WriteUnshared(Object)

Menulis objek "tidak dibagikan" ke ObjectOutputStream.

WriteUTF(String)

Penulisan data primitif dari String ini dalam format UTF-8 yang dimodifikasi.

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IJavaPeerable.Disposed()

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari JavaObject)
IJavaPeerable.Finalized()

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

(Diperoleh dari JavaObject)
IJavaPeerable.UnregisterFromRuntime()

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

Metode Ekstensi

Nama Deskripsi
FlushAsync(IFlushable)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

FlushAsync(IObjectOutput)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

GetJniTypeName(IJavaPeerable)

Mendapatkan nama JNI dari jenis instans self.

JavaAs<TResult>(IJavaPeerable)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Android.

JavaCast<TResult>(IJavaObject)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

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

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteAsync(IDataOutput, Byte[])

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteAsync(IDataOutput, Int32)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteBooleanAsync(IDataOutput, Boolean)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteByteAsync(IDataOutput, Int32)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteBytesAsync(IDataOutput, String)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteCharAsync(IDataOutput, Int32)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteCharsAsync(IDataOutput, String)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteDoubleAsync(IDataOutput, Double)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteFloatAsync(IDataOutput, Single)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteIntAsync(IDataOutput, Int32)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteLongAsync(IDataOutput, Int64)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteObjectAsync(IObjectOutput, Object)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteShortAsync(IDataOutput, Int32)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

WriteUTFAsync(IDataOutput, String)

ObjectOutputStream menulis jenis data primitif dan grafik objek Java ke OutputStream.

Berlaku untuk