Duvida sobre serialização

3 respostas
E

Olá !!!

Como é que eu faço para recuperar os três objetos gravados no arquivo ‘teste.txt’ ?

import java.io.*;
public class Main implements Serializable{     
    int idade;
    String nome ;    
    Main(int idade, String nome){
       this.idade=idade;
       this.nome = nome;
    }
            
    public static void main(String[] args) throws Exception {     
             Main m1 = new Main(1,"teste1");
             Main m2 = new Main(2,"teste2");
             Main m3 = new Main(3,"teste3");
             FileOutputStream fs = new FileOutputStream("c:\teste\teste.txt");
             ObjectOutputStream os = new ObjectOutputStream(fs);
             os.writeObject(m1);
             os.writeObject(m2);
             os.writeObject(m3);
        
             FileInputStream is = new FileInputStream("c:\teste\teste.txt");  
             ObjectInputStream oi = new ObjectInputStream(is);
             Main ma = (Main)oi.readObject();
                         
             System.out.println(ma.idade);
             System.out.println(ma.nome);           
    }    
}

Obrigado

3 Respostas

BrunoBastosPJ

Qual o erro que você está tendo? Testei teu código aqui e consegui ler os 3 objetos sem problemas…

S

Roda ae...

Capivara.java
import java.io.*;

public class Capivara implements Serializable{
	String nome; 
	int idade; 
	
	public Capivara(String nome, int idade){
		this.nome = nome; 
		this.idade = idade;
	}
	
	public String getNome(){
		return nome;
	}		

	public int getIdade(){
		return idade;
	}		
}
TesteCapivara.java
import java.io.*;

public class TesteCapivara {
	
	public static void main(String[] args){
		Capivara capivara = new Capivara("Capi", 5);
		
		try{
			FileOutputStream fs = new FileOutputStream("arquivoSerial.ser");
			ObjectOutputStream os = new ObjectOutputStream(fs);
			os.writeObject(capivara);
			os.close();
		
		}catch(Exception e){
			e.printStackTrace();
		}
		
		try{
			FileInputStream fis = new FileInputStream("arquivoSerial.ser");
			ObjectInputStream ois = new ObjectInputStream(fis);
			capivara = (Capivara) ois.readObject();
			ois.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	
		System.out.println("Depois: " + capivara.getNome() + " " + capivara.getIdade());
	
	}

}

Abraço!

E

está dando erro nenhum.
eu não consigo recuperar os valores das variáveis m1, m2 e m3.

Criado 1 de abril de 2008
Ultima resposta 1 de abr. de 2008
Respostas 3
Participantes 3