Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Clase Java ObjectOutputStream

Clase Java ObjectOutputStream

En este tutorial, aprenderemos sobre Java ObjectOutputStream y sus métodos con la ayuda de ejemplos.

El ObjectOutputStream clase del java.io El paquete se puede usar para escribir objetos que pueden ser leídos por ObjectInputStream .

Extiende el OutputStream clase abstracta.


Funcionamiento de ObjectOutputStream

Básicamente, el ObjectOutputStream codifica objetos Java usando el nombre de la clase y los valores del objeto. Y, por lo tanto, genera flujos correspondientes. Este proceso se conoce como serialización.

Esos flujos convertidos se pueden almacenar en archivos y se pueden transferir entre redes.

Nota :El ObjectOutputStream class solo escribe aquellos objetos que implementan el Serializable interfaz. Esto se debe a que los objetos deben serializarse mientras se escriben en la secuencia


Crear un ObjectOutputStream

Para crear un flujo de salida de objetos, debemos importar el java.io.ObjectOutputStream paquete primero. 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

El ObjectOutputStream La clase proporciona implementaciones para diferentes métodos presentes en el OutputStream clase.

método escribir()


Ejemplo 1:Java ObjectOutputStream

Veamos cómo podemos usar ObjectOutputStream para almacenar objetos en un archivo y ObjectInputStream para leer 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

Integer data: 5
String data: This is programiz

En el ejemplo anterior, hemos utilizado el readInt() método y readObject() método para leer datos enteros y datos de objetos de los archivos.

Aquí, hemos usado el ObjectOutputStream para 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

Dog Name: Tyson
Dog Breed: Labrador

En el ejemplo anterior, hemos creado

Aquí, hemos usado 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 :El Perro clase implementa el Serializable interfaz. Es porque el ObjectOutputStream solo escribe objetos 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 el 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).


Java

  1. Palabra clave final de Java
  2. Operador de instancia de Java
  3. Herencia de Java
  4. Clase estática anidada de Java
  5. Clase anónima de Java
  6. Clase única de Java
  7. Reflexión Java
  8. Clase Java ArrayList
  9. Clase de pila de Java
  10. Genéricos de Java
  11. Clase de archivo Java