A linguagem java permite a leitura e escrita direta de objetos em arquivos. O objeto deve, necessariamente, implementar a interface Serializable. Para isso basta incluir na declaração da classe a implementação conforme exemplo abaixo:

classe <nome_da_classe>  implements Serializable {
}

Adicionando essa implementação o objeto poderá ser usado em operações de entrada e saída de arquivos. Para manipular a leitura e escrita de objetos em streams utilizamos os objetos inObjectStream e OutObjectStream, respectivamente. Apresentamos abaixo um exemplo que ilustra a gravação de objetos seguida da leitura e impressão na tela.

Exemplo_ 2_4_6: leitura do arquivo usando o objeto scanner.

import java.io.*;

public class exemplo_2_4_6 {

    public static void main(String[] args) throws IOException, ClassNotFoundException {
        // Criação de um array de objetos do tipo pessoa
        pessoa[] pessoas = new pessoa[5];
        pessoas[0]= new pessoa("André","Sr.",'M');
        pessoas[1]= new pessoa("Paulo","Sr.",'M');
        pessoas[2]= new pessoa("Maria","Sra.",'F');
        pessoas[3]= new pessoa("Aline","Srs.",'F');
        pessoas[4]= new pessoa("Carlos","Dr.",'M');
        
        //GRAVAÇÃO DOS OBJETOS EM UM ARQUIVO
        File outFile= new File("objects.dat");
        FileOutputStream outFileStream= new FileOutputStream(outFile);
        ObjectOutputStream outObjectStream= new ObjectOutputStream(outFileStream);
        for(int i=0;i<5;i++){
            outObjectStream.writeObject(pessoas[i]);
        }
        outObjectStream.close();
        
        //LEITURA DAS INFORMAÇÔES NO ARQUIVO
        
        pessoa[] pessoaslidas = new pessoa[5]; 
        File inFile= new File("objects.dat");
        FileInputStream inFileStream= new FileInputStream(inFile);
        ObjectInputStream inInputStream= new ObjectInputStream(inFileStream);
        for (int i=0;i<5;i++){
                        //Lê cada objeto e coloca no array de entrada.
            pessoas[i] = (pessoa) inInputStream.readObject();
            System.out.println(pessoas[i].Nome);
            System.out.println(pessoas[i].Tratamento);
            System.out.println(pessoas[i].sexo);
        }
        inInputStream.close();
    }
}



public class pessoa  implements Serializable{

    public String Nome;
    public String Tratamento;
    public char sexo;
    
    public pessoa (String Nome, String Tratamento, char sexo){
        this.Nome=Nome;
        this.Tratamento = Tratamento;
        this.sexo = sexo;
    }
}
Copyright © 2014 AIEC.