En este tutorial, aprenderemos sobre Java ObjectOutputStream y sus métodos con la ayuda de ejemplos.
La ObjectOutputStreamclase del java.iopaquete se puede utilizar para escribir objetos que puedan leer ObjectInputStream.
Extiende la OutputStreamclase abstracta.

Trabajo de ObjectOutputStream
Básicamente, ObjectOutputStreamcodifica los objetos Java utilizando el nombre de la clase y los valores del objeto. Y, por lo tanto, genera las corrientes correspondientes. Este proceso se conoce como serialización.
Esos flujos convertidos se pueden almacenar en archivos y se pueden transferir entre redes.
Nota : La ObjectOutputStreamclase solo escribe aquellos objetos que implementan la Serializableinterfaz. Esto se debe a que los objetos deben serializarse al escribir en la secuencia.
Crear un ObjectOutputStream
Para crear un flujo de salida de objeto, java.io.ObjectOutputStreamprimero debemos importar el paquete. Una vez que importamos el paquete, así es como podemos crear un flujo de salida.
// Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream);
En el ejemplo anterior, hemos creado un flujo de salida de objeto llamado objStream que está vinculado con el flujo de salida del archivo llamado fileStream.
Métodos de ObjectOutputStream
La ObjectOutputStreamclase proporciona implementaciones para diferentes métodos presentes en la OutputStreamclase.
método de escritura
write()- escribe un byte de datos en el flujo de salidawriteBoolean()- escribe datos en forma booleanawriteChar()- escribe datos en forma de caractereswriteInt()- escribe datos en forma de enterowriteObject()- escribe el objeto en el flujo de salida
Ejemplo 1: Java ObjectOutputStream
Veamos cómo podemos usar ObjectOutputStreampara almacenar objetos en un archivo y ObjectInputStreamleer esos objetos de los archivos.
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; class Main ( public static void main(String() args) ( int data1 = 5; String data2 = "This is programiz"; try ( FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // writes objects to output stream output.writeInt(data1); output.writeObject(data2); // Reads data using the ObjectInputStream FileInputStream fileStream = new FileInputStream("file.txt"); ObjectInputStream objStream = new ObjectInputStream(fileStream); System.out.println("Integer data :" + objStream.readInt()); System.out.println("String data: " + objStream.readObject()); output.close(); objStream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Salida
Datos enteros: 5 datos de cadena: esto es programiz
En el ejemplo anterior, hemos utilizado el readInt()método y el readObject()método para leer datos enteros y datos de objetos de los archivos.
Aquí, hemos utilizado ObjectOutputStreampara escribir datos en el archivo. Luego leemos los datos del archivo usando el ObjectInputStream.
Ejemplo 2: Java ObjectOutputStream
Tomemos otro ejemplo,
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; class Dog implements Serializable ( String name; String breed; public Dog(String name, String breed) ( this.name = name; this.breed = breed; ) ) class Main ( public static void main(String() args) ( // Creates an object of Dog class Dog dog1 = new Dog("Tyson", "Labrador"); try ( FileOutputStream fileOut = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream objOut = new ObjectOutputStream(fileOut); // Writes objects to the output stream objOut.writeObject(dog1); // Reads the object FileInputStream fileIn = new FileInputStream("file.txt"); ObjectInputStream objIn = new ObjectInputStream(fileIn); // Reads the objects Dog newDog = (Dog) objIn.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); objOut.close(); objIn.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Salida
Nombre del perro: Tyson Raza de perro: Labrador
En el ejemplo anterior, hemos creado
ObjectOutputStreamnamed objOut usando elFileOutputStreamnombre fileOutObjectInputStreamnamed objIn usando elFileInputStreamnombre fileIn.- Un objeto dog1 de la clase Dog.
Aquí, hemos utilizado el flujo de salida del objeto para escribir el objeto en el archivo. Y, el flujo de entrada del objeto para leer el objeto del archivo.
Nota : La clase Dog implementa la Serializableinterfaz. Es porque los ObjectOutputStreamúnicos objetos de escritura que se pueden serializar en el flujo de salida.
Otros métodos de ObjectOutputStream
| Métodos | Descripciones |
|---|---|
flush() | borra todos los datos del flujo de salida |
drain() | coloca todos los datos almacenados en búfer en el flujo de salida |
close() | cierra el flujo de salida |
Para obtener más información, visite Java ObjectOutputStream (documentación oficial de Java).








