Gravar objeto em arquivo?

7 respostas
A

Pessoal estou criando um programa que tem cadastro de usuarios …

mas preciso que o cadastro grave em um arquivo …

vou criar um array de usuarios

Usuario user[] = new Usuario[1000];
public class Usuario{
	private int id;
	private String nome;
	private String endereco;	
	private String telefone;
	
	public Usuario(int id,String nome,String endereco,String telefone){
		this.id = id;
		this.nome = nome;
		this.endereco = endereco;
		this.telefone = telefone;
	}
	
	public void setId(int id){
		this.id = id;
	}
	
	public int getId(){
		return id;
	}
	
	public void setNome(String nome){
		this.nome = nome;
	}
	
	public String getNome(){
		return nome;
	}
	
	public void setEndereco(String endereco){
		this.endereco = endereco;
	}
	
	public String getEndereco(){
		return endereco;
	}

	public void setTelefone(String telefone){
		this.telefone = telefone;
	}
	
	public String getTelefone(){
		return telefone;
	}
	
	public String toString(){
		String result = "___________________________";
		result += "\nNome : ";
		result += nome;
		result += "\nTelefone : ";
		result += telefone;
		result += "\nEndereco : ";
		result += endereco;
		return result;
	}	
	
}

qual seria a maneira correta de eu guardar os usuarios em arquivo …
ai nem precisaria usar vetor por exemplo para não limitar o numero de usuarios ?

obrigado pessoal

7 Respostas

_

crie um arquivo:
File file = new File(“nomedoaquivo.dat”);

crie o leitor para o aquivo:
ObjectOutStream output = new ObjectOutputSteam(new FileOutPutStream(file));

grave o objeto com: output.writeObject(list);

So que isso serve para gravar objetos, nao sei como se faz com arrays, mas acho melhor criar uma List para guardar os elementos…

para ler faz a mesma coisa, so que troca “Output” por “Input” e “writeObject” por “List lista = readObject()”

é mais ou menos assim…()

A

Cara,
tenta faze isso usando lista ligada… Manja ?
Assim vc vai ter um objeto para cada usuario… e nao vai precisar se preocupar com o tamanho da lista…

Ai e so usar o que nosso amigo falou pra gravar os Objetos em arquivo…

Fui !

A

Cara,
tenta fazer isso usando lista ligada… Manja ?
Assim vc vai ter um objeto para cada usuario… e nao vai precisar se preocupar com o tamanho da lista…

Ai e so usar o que nosso amigo falou pra gravar os Objetos em arquivo…

Fui !

P

Se vc realmente quer gravar os objetos do array num arquivo, vc pode ate usar o que o pessoal falou (com o ObjectOutputStream). É so tornar os objetos que vc quer gravar como Serializable, e entao vc grava eles em formato binario em um arquivo…Depois vc consegue pegar esse mesmo arquivo binario e transforma-lo novamente num objeto.

Te +

A

valeu a juda ai pessoal … vou tentar fazer isso …

obrigado mesmo …

A

putz…

tentei gravar gravou legal mas pra ler da erro de compilação

import java.io.*;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Arquivo{

       public void gravaobj(ArrayList user){
               try {
                       File file = new File("nomedoaquivo.dat");
                       ObjectOutputStream output = new ObjectOutputStream(new
FileOutputStream(file));
                       output.writeObject(user);
               }
               catch(Exception e){
                       System.out.println(e.toString());
               }

       }

       public void leobj(){
               try {
                       File file = new File("nomedoaquivo.dat");
                       ObjectInputStream input = new ObjectInputStream(new
FileInputStream(file));
                       ArrayList user = input.readObject();

               }
               catch(Exception e){
                       System.out.println(e.toString());
               }

       }
incompatible types
found   : java.lang.Object
required: java.util.ArrayList
       ArrayList user = input.readObject();
                                                        ^
1 error
A

Obrigado pessoal,

consegui arrumar :

ArrayList user = (ArrayList)input.readObject();

faltava converter os tipos :smiley:

Criado 2 de novembro de 2004
Ultima resposta 4 de nov. de 2004
Respostas 7
Participantes 4