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 ObjectOutputStream

Classe Java ObjectOutputStream


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

O ObjectOutputStream classe do java.io pacote pode ser usado para escrever objetos que podem ser lidos por ObjectInputStream .

Ele estende o OutputStream classe abstrata.



Trabalho de ObjectOutputStream


Basicamente, o ObjectOutputStream codifica objetos Java usando o nome da classe e os valores do objeto. E, portanto, gera fluxos correspondentes. Esse processo é conhecido como serialização.

Esses fluxos convertidos podem ser armazenados em arquivos e podem ser transferidos entre redes.

Observação :O ObjectOutputStream classe só escreve aqueles objetos que implementam o Serializable interface. Isso ocorre porque os objetos precisam ser serializados durante a gravação no fluxo

Criar um ObjectOutputStream


Para criar um fluxo de saída de objeto, devemos importar o java.io.ObjectOutputStream pacote primeiro. Depois de importar o pacote, veja como podemos criar um fluxo de saída.
// Creates a FileOutputStream where objects from ObjectOutputStream are written
FileOutputStream fileStream = new FileOutputStream(String file);

// Creates the ObjectOutputStream
ObjectOutputStream objStream = new ObjectOutputStream(fileStream);

No exemplo acima, criamos um fluxo de saída de objeto chamado objStream que está vinculado ao fluxo de saída do arquivo chamado fileStream .

Métodos de ObjectOutputStream


O ObjectOutputStream classe fornece implementações para diferentes métodos presentes no OutputStream classe.

Método write()


Exemplo 1:Java ObjectOutputStream


Vamos ver como podemos usar ObjectOutputStream para armazenar objetos em um arquivo e ObjectInputStream para ler esses objetos dos arquivos
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();
        }
    }
}



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

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

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

Exemplo 2:Java ObjectOutputStream


Vamos dar outro exemplo,
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();
        }
    }
}

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 objetos que podem ser serializados no fluxo de saída.

Outros métodos de ObjectOutputStream

Métodos Descrições
flush() limpa todos os dados do fluxo de saída
drain() coloca todos os dados armazenados em buffer no fluxo de saída
close() fecha o fluxo de saída

Para saber mais, visite Java ObjectOutputStream (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 ArrayList
  9. Genéricos Java
  10. Classe de arquivo Java