luismauricio
09-06-2007, 19:25
Boas tardes estou com um pequeno problema e precisava que me ajudassem a resolver.
Precisava de Gravar uma lista de objectos em linguagem Java para ficheiros e posteriormente ler os mesmos.
Para gravar eu fiz isto:
try {
FileOutputStream fos = new FileOutputStream("FornecedoresList.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(folist);
oos.close();
}
catch (Exception e) { e.printStackTrace(); }
mas não sei se é possível e não sei como resolver o problema da leitura dos dados depois.
SoundSurfer
09-06-2007, 19:58
Experimenta serializar a lista para Xml, e guardas o ficheiro.
Depois é só "desserializar" para voltar a ler para memória.
Só sei fazer isso em C#, não sei como é em java.
MadOnion
10-06-2007, 12:24
Na assinatura da classe, deve estar "implements Serializable". À partida esse código funciona bem, depois da dita implementação da interface.
destr0yer
10-06-2007, 23:34
Na assinatura da classe, deve estar "implements Serializable". À partida esse código funciona bem, depois da dita implementação da interface.
Exacto, isso tem que implementar o Serializable:
Se for uma classe independente sem interface, nem herança.
import java.io.Serializable;
(public) class XPTO implements Serializable
{
static final long serialVersionUID = 0L;
...
}
A variável estática é obrigatória, pode ser qualquer inteiro long, no caso deixei 0L.
Se for uma interface e uma classe que a implementa
import java.io.Serializable;
(public) Interface iXPTO extends Serializable
{
...
} (public) Class cXPTO implements iXPTO
{
static final long serialVersionUID = 0L;
...
} Não é necessário a classe importar o java.io.Serializable, a interface faz isso, embora tenha que ter a varável static da praxe.
luismauricio
12-06-2007, 18:45
Desculpem lá mas podem me explicar como se eu fosse mesmo mesmo burro ( lol ).
Eu tenho uma lista de objectos do tipo cliente com alguns atributos e queria guardar essa lista num ficheiro para depois mais tarde poder aceder.
Podem me por mesmo o código. obrigado
mcog_blaster
12-06-2007, 19:06
Experimenta ....class Cliente implements Serializable { ......
e vê se consegues reconstruir a a lista a partir do ficheiro, e nao esquecer que muito provavelmente tens de fazer cast ao object Cliente que vais ler do ficheiro cliente = (Cliente)ois.readObject().... ois: ObjectInputStream.