Modificar Objeto em Arquivo

12 respostas
D

Fala pessoal,

Minha dúvida é a seguinte: Eu estou gravando em um arquivo, certos objetos, do tipo Pessoa por exemplo. Então por exemplo se eu gravar José e depois gravar Maria, com seus respectivos telefones, existe um meio de eu ir lá no arquivo, e depois alterar apenas o telefone de Jose ou Maria??

Desde já, obrigado. :smiley:

12 Respostas

wagnerfrancisco

Como você está salvando o arquivo?

Provavelmente você vai acabar carregando ele novamente, alterando o objeto e salvando de novo. Mas posta o código que você tem pra ficar mais claro.

Abraço.

D

Basicamente estou fazendo isso aqui:

agenda = new File("agenda.dat");
arquivoGravar = new FileOutputStream(agenda);
 objGravar = new ObjectOutputStream(arquivoGravar);

Usuario usuario = new Usuario(nome, email, descricao);        	
        	
objGravar.writeObject(usuario);
objGravar.flush();
objGravar.close();
D

E para ler o objeto:

FileInputStream arquivoLeitura = new FileInputStream("agenda.dat");
ObjectInputStream objLeitura =	new ObjectInputStream(arquivoLeitura);

System.out.println(objLeitura.readObject());
objLeitura.close();
arquivoLeitura.close();
fuadksd

desse jeito que tu ta fazendo até da pra modificar mas tu teria que entender o arquivo binário gerado

D

E qual a solução parar eu poder fazer isso então??

fuadksd

gravar em xml ou em texto plano

D

Sim, ok. Mesmo que eu grave em texto plano, como farei pra acessar o objeto diretamente lá, e modifica-lo?

fuadksd

se tu gravar em texto tu modifica o texto

tipo

joao;12345
maria;12345

dai tu vai la e edita

D

fuadksd:
se tu gravar em texto tu modifica o texto

tipo

joao;12345
maria;12345

dai tu vai la e edita

Acho que você não entendeu, o que eu quero fazer.

No programa que eu vou fazer, eu quero que na execução do programa, eu tenha a opção de modificar o objeto, a partir do programa mesmo, e não abrir o arquivo texto e modificar. É como se fosse um cadastro de usuários entendeu?

fuadksd

ok

o mais seguro é

carregar todos os dados do arquivo pra memoria e quando quiser “atualizar” o arquivo grava tudo de novo

da pra modificar o arquivo usando seek() mas tu tem que saber em que linha os dados se encontram

D

fuadksd:
ok

o mais seguro é

carregar todos os dados do arquivo pra memoria e quando quiser “atualizar” o arquivo grava tudo de novo

da pra modificar o arquivo usando seek() mas tu tem que saber em que linha os dados se encontram

OK…vou procurar me informar…Caso alguem tenha outras ideias ai, me falem por favor. :wink:

fuadksd

explica melhor da um contexto, talvez fique melhor de entender

Criado 26 de outubro de 2011
Ultima resposta 27 de out. de 2011
Respostas 12
Participantes 3