EOFException (Arquivo de objetos)

2 respostas
cs.santos0

Iai pessual,

Tenho o seguinte método:

public boolean recordCustomerFile(){
        try{
            ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("banco\\bancoClientes.txt"));
            
            for(Cliente cli : arrayCliente)
                out.writeObject(cli);
            
            out.close();
            
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(null, "Não é possivel salvar", "Aplicação MDI",
                    JOptionPane.ERROR_MESSAGE);
            return false;
        }catch(IOException e){
            JOptionPane.showMessageDialog(null, "Não é possivel salvar", "Aplicação MDI",
                    JOptionPane.ERROR_MESSAGE);
            return false;
        }
        return true;
    }

e uso ele na minha aplicação para resgatar objetos de meu arquivo texto. Ele funciona perfeitamente, porem ele lança uma EOFException.

A minha dúvida é pq ele lança essa excepção??....alguem sabe?

flw, um abraço

2 Respostas

cs.santos0

Desculpe, colei o método errado... :D

Segue o método de leitura:

public void readCustomerFile(){
        
        boolean flag = true;
        Cliente cliente;
        try{
            ObjectInputStream inp = new ObjectInputStream(new FileInputStream("banco\\bancoClientes.txt"));
            
            while(flag == true){
                try{
                    cliente = (Cliente) inp.readObject();
                    arrayCliente.add(cliente);
                    
                }catch(Exception ex){
                    flag = !flag;
                }
            }
            inp.close();
        }catch(IOException e){
            JOptionPane.showMessageDialog(null, "Não é possivel ler o arquivo!!", "Aplicação MDI",
                    JOptionPane.ERROR_MESSAGE);
        }
    }

flw

D

Vou acrescentar mais uma pergunta neste tópico.
Toda vez que o método apresentado acima é executado ele apaga os dados anteriormente gravados no arquivo. Isto se deve à ausência do parâmetro true na linha 6.
Algúem já conseguiu gravar dados, tentanto preservar o conteúdo já existente no arquivo e depois conseguir recuper todos sem gerar nenhuma exceção?
Agradeço as dicas.

Criado 22 de setembro de 2007
Ultima resposta 6 de out. de 2007
Respostas 2
Participantes 2