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 ObjectInputStream

Clase Java ObjectInputStream

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

El ObjectInputStream clase del java.io El paquete se puede usar para leer objetos que fueron escritos previamente por ObjectOutputStream .

Extiende el InputStream clase abstracta.

Antes de conocer el ObjectInputStream clase, asegúrese de conocer la clase ObjectOutputStream.


Funcionamiento de ObjectInputStream

Los ObjectInputStream se utiliza principalmente para leer datos escritos por el ObjectOutputStream .

Básicamente, el ObjectOutputStream convierte objetos Java en flujos correspondientes. Esto se conoce como serialización. Esas secuencias convertidas se pueden almacenar en archivos o transferir a través de redes.

Ahora, si necesitamos leer esos objetos, usaremos el ObjectInputStream que convertirá los flujos de nuevo en los objetos correspondientes. Esto se conoce como deserialización.


Crear un ObjectInputStream

Para crear un flujo de entrada de objetos, debemos importar el java.io.ObjectInputStream paquete primero. Una vez que importamos el paquete, así es como podemos crear un flujo de entrada.

// Creates a file input stream linked with the specified file
FileInputStream fileStream = new FileInputStream(String file);

// Creates an object input stream using the file input stream
ObjectInputStream objStream = new ObjectInputStream(fileStream);

En el ejemplo anterior, hemos creado un flujo de entrada de objetos llamado objStream que está vinculado con el flujo de entrada del archivo llamado fileStream .

Ahora, el objStream se puede utilizar para leer objetos del archivo.


Métodos de ObjectInputStream

El ObjectInputStream La clase proporciona implementaciones de diferentes métodos presentes en el InputStream clase.

método read()


Ejemplo 1:Java ObjectInputStream

Veamos cómo podemos usar el ObjectInputStream clase para leer objetos escritos por el ObjectOutputStream clase.

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");
            ObjectOutputStream output = new ObjectOutputStream(file);

            // Writing to the file using ObjectOutputStream
            output.writeInt(data1);
            output.writeObject(data2);

            FileInputStream fileStream = new FileInputStream("file.txt");
            // Creating an object input stream
            ObjectInputStream objStream = new ObjectInputStream(fileStream);

            //Using the readInt() method
            System.out.println("Integer data :" + objStream.readInt());

            // Using the readObject() method
            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() y readObject() método para leer datos enteros y datos de objetos del archivo.

Aquí, hemos usado el ObjectOutputStream para escribir datos en el archivo. Luego leemos los datos del archivo usando el ObjectInputStream .


Ejemplo 2:Java ObjectInputStream

Veamos otro ejemplo práctico,

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 dog = new Dog("Tyson", "Labrador");

        try {
            FileOutputStream file = new FileOutputStream("file.txt");

            // Creates an ObjectOutputStream
            ObjectOutputStream output = new ObjectOutputStream(file);

            // Writes objects to the output stream
            output.writeObject(dog);

            FileInputStream fileStream = new FileInputStream("file.txt");

            // Creates an ObjectInputStream
            ObjectInputStream input = new ObjectInputStream(fileStream);

            // Reads the objects
            Dog newDog = (Dog) input.readObject();

            System.out.println("Dog Name: " + newDog.name);
            System.out.println("Dog Breed: " + newDog.breed);

            output.close();
            input.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 los objetos serializables en el flujo de salida.


Otros métodos de ObjectInputStream

Métodos Descripciones
available() devuelve el número disponible de bytes en el flujo de entrada
mark() marca la posición en el flujo de entrada hasta la que se han leído los datos
reset() devuelve el control al punto en el flujo de entrada donde se estableció la marca
skipBytes() salta y descarta los bytes especificados del flujo de entrada
close() cierra el flujo de entrada del objeto

Para obtener más información, visite Java ObjectInputStream (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 Java ObjectOutputStream
  10. Genéricos de Java
  11. Clase de archivo Java