Ola sou novo no forum, e estou com problemas em gravar objetos em arquivos texto e depois acessa-los.
Um problema é que a gravação não é toda no mesmo momento, é um método que é acessado e em cada vez é para gravar no arquivo txt sem sobreescrever.
Você quer fazer um “banco de dados de objetos”? É aconselhável ter um arquivo auxiliar de índice, para você poder achar o objeto antes de tentar recuperá-lo. E em vez de usar um FileOutputStream/FileInputStream, usar um RandomAccessFile, e para gravar/ler o objeto, encapsular seu ObjectOutputStream em um ByteArrayOutputStream, e seu ObjectInputStream em um ByteArrayInputStream. Esse arquivo de indice você tem de pensar como ele deve ser. Basicamente ele teria de guardar uma chave (para você poder achar os objetos), uma posição no arquivo, e o tamanho do objeto. Talvez você precise pensar em um esquema de como reaproveitar espaço que foi liberado por um objeto apagado.
public class Pessoa implements Serializable{
private String nome;
private String telefone;
private String endereco;
private String cep;
private String cidade;
private String estado;
public Pessoa(){}
public Pessoa(String nome, String telefone, String endereco, String cep, String cidade, String estado){
this.nome = nome;
this.telefone = telefone;
this.endereco = endereco;
this.cep = cep;
this.cidade = cidade;
this.estado = estado;
}
public String getNome(){ return nome;}
public String getTelefone(){ return telefone;}
public String getEndereco(){ return endereco;}
public String getCep(){return cep;}
public String getCidade(){return cidade;}
public String getEstado(){return estado;}
public void setNome(String nome){
this.nome = nome;}
public void setTelefone(String telefone){
this.telefone = telefone;}
public void setEndereco(String endereco){
this.endereco = endereco;}
public void setCep(String cep){
this.cep = cep;}
public void setCidade(String cidade){
this.cidade = cidade;}
public void setEstado(String estado){
this.estado=estado;}
}[/code]
Quer que eu posto o outro tbm?
Não, não aprendi nada sobre Banco de Dados ainda.
O problema é que quando eu chamo outro método que lê os Objetos do arquivo.txt, e exibeDados na tela esses objeto, só mostra dos dois primeiros, dos outros só mostra o “Erro na leitura do arquivo”.
voce ja tento debuga o codigo pra ve onde esta acontecendo o erro ou por onde ele nao esta passando quando executado, se voce cria um metodo para ler as linha do txt e inserir no final pode ser que da certo
Mas não eh texto, são objetos adicionados em um arquivo.txt, e quando vou ler ele acusa erro na leitura.
De acordo com o “entanglement” pode usar o RandomAccessFile, e o ByteArrayOutputStream, alguem me ajudaria? Não conheço esses dois, dei uma pesquisada mas não consegui usar o RandomAccessFile.