Compartir a través de


ObjectOutputStream Clase

Definición

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en 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
Herencia
ObjectOutputStream
Atributos
Implementaciones

Comentarios

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream. Los objetos se pueden leer (reconstituir) mediante objectInputStream. El almacenamiento persistente de objetos se puede realizar mediante un archivo para la secuencia. Si la secuencia es una secuencia de socket de red, los objetos se pueden reconstituir en otro host o en otro proceso.

Solo los objetos que admiten la interfaz java.io.Serializable se pueden escribir en secuencias. La clase de cada objeto serializable se codifica, incluidos el nombre de clase y la firma de la clase, los valores de los campos y matrices del objeto, y el cierre de cualquier otro objeto al que se hace referencia desde los objetos iniciales.

El método writeObject se usa para escribir un objeto en la secuencia. Cualquier objeto, incluidas cadenas y matrices, se escribe con writeObject. Se pueden escribir varios objetos o primitivos en la secuencia. Los objetos deben leerse de nuevo desde el objectInputstream correspondiente con los mismos tipos y en el mismo orden en que se escribieron.

Los tipos de datos primitivos también se pueden escribir en la secuencia mediante los métodos adecuados de DataOutput. Las cadenas también se pueden escribir mediante el método writeUTF.

El mecanismo de serialización predeterminado para un objeto escribe la clase del objeto, la firma de clase y los valores de todos los campos no transitorios y no estáticos. Las referencias a otros objetos (excepto en campos transitorios o estáticos) hacen que esos objetos también se escriban. Varias referencias a un único objeto se codifican mediante un mecanismo de uso compartido de referencias para que los gráficos de objetos se puedan restaurar a la misma forma que cuando se escribió el original.

Por ejemplo, para escribir un objeto que puede leer el ejemplo en 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();

Las clases que requieren un control especial durante el proceso de serialización y deserialización deben implementar métodos especiales con estas firmas exactas: <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;

El método writeObject es responsable de escribir el estado del objeto para su clase determinada para que el método readObject correspondiente pueda restaurarlo. El método no necesita preocuparse por el estado que pertenece a las superclases o subclases del objeto. El estado se guarda escribiendo los campos individuales en ObjectOutputStream mediante el método writeObject o mediante los métodos para los tipos de datos primitivos admitidos por DataOutput.

La serialización no escribe los campos de ningún objeto que no implemente la interfaz java.io.Serializable. Las subclases de Objetos que no son serializables pueden ser serializables. En este caso, la clase no serializable debe tener un constructor no arg para permitir que sus campos se inicialicen. En este caso, es responsabilidad de la subclase guardar y restaurar el estado de la clase no serializable. Suele ser el caso de que los campos de esa clase sean accesibles (públicos, paquetes o protegidos) o que hay métodos get y set que se pueden usar para restaurar el estado.

Se puede evitar la serialización de un objeto mediante la implementación de métodos writeObject y readObject que inician notSerializableException. ObjectOutputStream detectará la excepción y anulará el proceso de serialización.

La implementación de la interfaz Externalizable permite al objeto asumir un control completo sobre el contenido y el formato del formulario serializado del objeto. Se llama a los métodos de la interfaz Externalizable, writeExternal y readExternal, para guardar y restaurar el estado de los objetos. Cuando se implementa mediante una clase, pueden escribir y leer su propio estado mediante todos los métodos de ObjectOutput y ObjectInput. Es responsabilidad de los objetos controlar cualquier control de versiones que se produzca.

Las constantes de enumeración se serializan de forma diferente a los objetos serializables o externalizables normales. La forma serializada de una constante de enumeración consta únicamente de su nombre; Los valores de campo de la constante no se transmiten. Para serializar una constante de enumeración, ObjectOutputStream escribe la cadena devuelta por el método name de la constante. Al igual que otros objetos serializables o externalizables, las constantes de enumeración pueden funcionar como destinos de referencias inversas que aparecen posteriormente en el flujo de serialización. No se puede personalizar el proceso por el que se serializan las constantes de enumeración; los métodos writeObject y writeReplace específicos de clase definidos por los tipos de enumeración se omiten durante la serialización. Del mismo modo, las declaraciones de campo serialPersistentFields o serialVersionUID también se omiten; todos los tipos de enumeración tienen un serialVersionUID fijo de 0L.

Los datos primitivos, excepto los campos serializables y los datos externalizables, se escriben en ObjectOutputStream en registros de datos en bloques. Un registro de datos de bloque se compone de un encabezado y datos. El encabezado de datos de bloque consta de un marcador y el número de bytes que se van a seguir el encabezado. Las escrituras de datos primitivas consecutivas se combinan en un registro de datos de bloque. El factor de bloqueo usado para un registro de datos en bloques será de 1024 bytes. Cada registro de datos de bloque se rellenará hasta 1024 bytes o se escribirá cada vez que haya una terminación del modo de datos en bloque. Las llamadas a los métodos ObjectOutputStream writeObject, defaultWriteObject y writeFields finalizan inicialmente cualquier registro de datos de bloque existente.

Agregado en JDK1.1.

Documentación de Java para java.io.ObjectOutputStream.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Constructores

ObjectOutputStream()

Proporcione una manera de que las subclases que se vuelvan a implementar completamente ObjectOutputStream no tengan que asignar datos privados que acaba de usar esta implementación de ObjectOutputStream.

ObjectOutputStream(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución.

ObjectOutputStream(Stream)

Crea un objeto ObjectOutputStream que escribe en el outputStream especificado.

Propiedades

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
JniPeerMembers

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

PeerReference

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

Métodos

AnnotateClass(Class)

Las subclases pueden implementar este método para permitir que los datos de clase se almacenen en la secuencia.

AnnotateProxyClass(Class)

Las subclases pueden implementar este método para almacenar datos personalizados en el flujo junto con descriptores para clases de proxy dinámicos.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Close()

Cierra este flujo de salida y libera los recursos del sistema asociados a esta secuencia.

(Heredado de OutputStream)
DefaultWriteObject()

Escriba los campos no estáticos y no transitorios de la clase actual en esta secuencia.

Dispose()

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
Dispose(Boolean)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
Drain()

Purga los datos almacenados en búfer en ObjectOutputStream.

EnableReplaceObject(Boolean)

Habilite la secuencia para reemplazar los objetos de la secuencia.

Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
Flush()

Vacía este flujo de salida y fuerza que se escriban los bytes de salida almacenados en búfer.

(Heredado de OutputStream)
GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
JavaFinalize()

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
PutFields()

Recupere el objeto usado para almacenar en búfer los campos persistentes que se escribirán en la secuencia.

ReplaceObject(Object)

Este método permitirá que las subclases de confianza de ObjectOutputStream sustituya un objeto por otro durante la serialización.

Reset()

El restablecimiento omitirá el estado de los objetos ya escritos en la secuencia.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
ToArray<T>()

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
UseProtocolVersion(ObjectStreamProtocol)

Especifique la versión del protocolo de secuencia que se usará al escribir la secuencia.

Wait()

Hace que el subproceso actual espere hasta que se despierta, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Write(Byte[])

b.length Escribe bytes de la matriz de bytes especificada en este flujo de salida.

(Heredado de OutputStream)
Write(Byte[], Int32, Int32)

len Escribe bytes de la matriz de bytes especificada a partir del desplazamiento off en este flujo de salida.

(Heredado de OutputStream)
Write(Int32)

Escribe un byte.

WriteAsync(Byte[])

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de OutputStream)
WriteAsync(Byte[], Int32, Int32)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de OutputStream)
WriteAsync(Int32)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de OutputStream)
WriteBoolean(Boolean)

Escribe un valor booleano.

WriteByte(Int32)

Escribe un byte de 8 bits.

WriteBytes(String)

Escribe una cadena como una secuencia de bytes.

WriteChar(Int32)

Escribe un carácter de 16 bits.

WriteChars(String)

Escribe una cadena como una secuencia de caracteres.

WriteClassDescriptor(ObjectStreamClass)

Escriba el descriptor de clase especificado en ObjectOutputStream.

WriteDouble(Double)

Escribe un doble de 64 bits.

WriteFields()

Escriba los campos almacenados en búfer en la secuencia.

WriteFloat(Single)

Escribe un valor float de 32 bits.

WriteInt(Int32)

Escribe un entero de 32 bits.

WriteLong(Int64)

Escribe un long de 64 bits.

WriteObject(Object)

Escriba el objeto especificado en ObjectOutputStream.

WriteObjectOverride(Object)

Método usado por subclases para invalidar el método writeObject predeterminado.

WriteShort(Int32)

Escribe un short de 16 bits.

WriteStreamHeader()

El método writeStreamHeader se proporciona para que las subclases puedan anexar o anteponer su propio encabezado a la secuencia.

WriteUnshared(Object)

Escribe un objeto "no compartido" en ObjectOutputStream.

WriteUTF(String)

Escritura de datos primitivos de esta cadena en formato UTF-8 modificado.

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
IJavaPeerable.Finalized()

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

GetJniTypeName(IJavaPeerable)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteAsync(IDataOutput, Byte[])

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

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

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteAsync(IDataOutput, Int32)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteBooleanAsync(IDataOutput, Boolean)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteByteAsync(IDataOutput, Int32)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteBytesAsync(IDataOutput, String)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteCharAsync(IDataOutput, Int32)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteCharsAsync(IDataOutput, String)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteDoubleAsync(IDataOutput, Double)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteFloatAsync(IDataOutput, Single)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteIntAsync(IDataOutput, Int32)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteLongAsync(IDataOutput, Int64)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteShortAsync(IDataOutput, Int32)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteUTFAsync(IDataOutput, String)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

FlushAsync(IFlushable)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

FlushAsync(IObjectOutput)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

WriteObjectAsync(IObjectOutput, Object)

ObjectOutputStream escribe tipos de datos primitivos y gráficos de objetos Java en outputStream.

Se aplica a