Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Classe Java ObjectInputStream

Classe Java ObjectInputStream


Neste tutorial, aprenderemos sobre Java ObjectOutputStream e seus métodos com a ajuda de exemplos.

O ObjectInputStream classe do java.io pacote pode ser usado para ler objetos que foram escritos anteriormente por ObjectOutputStream .

Ele estende o InputStream classe abstrata.



Antes de aprender sobre o ObjectInputStream class, certifique-se de conhecer a classe ObjectOutputStream.


Trabalho de ObjectInputStream


O ObjectInputStream é usado principalmente para ler dados escritos pelo ObjectOutputStream .

Basicamente, o ObjectOutputStream converte objetos Java em fluxos correspondentes. Isso é conhecido como serialização. Esses fluxos convertidos podem ser armazenados em arquivos ou transferidos por meio de redes.

Agora, se precisarmos ler esses objetos, usaremos o ObjectInputStream que converterá os fluxos de volta em objetos correspondentes. Isso é conhecido como desserialização.

Criar um ObjectInputStream


Para criar um fluxo de entrada de objeto, devemos importar o java.io.ObjectInputStream pacote primeiro. Depois de importar o pacote, aqui está como podemos criar um fluxo 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);

No exemplo acima, criamos um fluxo de entrada de objeto chamado objStream que está vinculado ao fluxo de entrada de arquivo chamado fileStream .

Agora, o objStream pode ser usado para ler objetos do arquivo.

Métodos de ObjectInputStream


O ObjectInputStream classe fornece implementações de diferentes métodos presentes no InputStream classe.

Método read()


Exemplo 1:Java ObjectInputStream




Vamos ver como podemos usar o ObjectInputStream classe para ler objetos escritos pelo ObjectOutputStream classe.
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();
        }
    }
}

Saída
Integer data: 5
String data: This is programiz

No exemplo acima, usamos o readInt() e readObject() método para ler dados inteiros e dados de objetos do arquivo.

Aqui, usamos o ObjectOutputStream para gravar dados no arquivo. Em seguida, lemos os dados do arquivo usando o ObjectInputStream .

Exemplo 2:Java ObjectInputStream


Vamos ver outro exemplo prático,
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();
        }
    }
}

Saída
Dog Name: Tyson
Dog Breed: Labrador

No exemplo acima, criamos

Aqui, usamos o fluxo de saída do objeto para gravar o objeto no arquivo. E, o fluxo de entrada do objeto para ler o objeto do arquivo.

Observação :O Cão classe implementa o Serializable interface. É porque o ObjectOutputStream grava apenas os objetos serializáveis ​​no fluxo de saída.

Outros métodos de ObjectInputStream

Métodos Descrições
available() retorna o número disponível de bytes no fluxo de entrada
mark() marca a posição no fluxo de entrada até a qual os dados foram lidos
reset() retorna o controle ao ponto no fluxo de entrada onde a marca foi definida
skipBytes() ignora e descarta os bytes especificados do fluxo de entrada
close() fecha o fluxo de entrada do objeto

Para saber mais, visite Java ObjectInputStream (documentação oficial do Java).

Java

  1. Palavra-chave final Java
  2. Java instanceof Operator
  3. Herança Java
  4. Classe estática aninhada em Java
  5. Classe anônima Java
  6. Classe Java Singleton
  7. Reflexão Java
  8. Classe Java ObjectOutputStream
  9. Genéricos Java
  10. Classe de arquivo Java