Bagikan melalui


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.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
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 yang dapat diserialisasikan biasa 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.

Dokumentasi Java untuk java.io.ObjectOutputStream.

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Konstruktor

ObjectOutputStream()

Berikan cara untuk subkelas yang sepenuhnya melengkapi ObjectOutputStream untuk 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

Class

Mengembalikan kelas runtime dari .Object

(Diperoleh dari Object)
Handle

Handel ke instans Android yang mendasar.

(Diperoleh dari Object)
JniIdentityHashCode

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

(Diperoleh dari Object)
JniPeerMembers

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

PeerReference

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

(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

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)
DefaultWriteObject()

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

Dispose()

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

(Diperoleh dari Object)
Dispose(Boolean)

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

(Diperoleh dari Object)
Drain()

Kosongkan data yang di-buffer di ObjectOutputStream.

EnableReplaceObject(Boolean)

Aktifkan aliran untuk melakukan penggantian objek di aliran.

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)

Handle Mengatur properti.

(Diperoleh dari Object)
ToArray<T>()

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

(Diperoleh dari Object)
ToString()

Mengembalikan representasi string objek.

(Diperoleh dari Object)
UnregisterFromRuntime()

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

(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)

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

(Diperoleh dari Object)
Wait(Int64, Int32)

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

(Diperoleh dari Object)
Write(Byte[])

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

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

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

(Diperoleh dari OutputStream)
Write(Int32)

Menulis byte.

WriteAsync(Byte[])

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

(Diperoleh dari OutputStream)
WriteAsync(Byte[], Int32, Int32)

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

IJavaPeerable.Disposed()

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

(Diperoleh dari Object)
IJavaPeerable.DisposeUnlessReferenced()

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

(Diperoleh dari Object)
IJavaPeerable.Finalized()

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

(Diperoleh dari Object)
IJavaPeerable.JniManagedPeerState

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

(Diperoleh dari Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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

(Diperoleh dari Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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

(Diperoleh dari Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

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

(Diperoleh dari Object)

Metode Ekstensi

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Bahasa Umum Android.

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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, Byte[], Int32, Int32)

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.

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.

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.

WriteObjectAsync(IObjectOutput, Object)

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

Berlaku untuk