ae pessoal,
 
tipo,
 
tenho uma classe Pessoas implements Serializable por exemplo
e tenho um programa que le, e outro q insere e grava esses objetos dessa classe
 
no caso da gravação eu estou usando:
 
            FileOutputStream os = new FileOutputStream("pessoas.dat");
            ObjectOutputStream oarq = new ObjectOutputStream(os);
            for (int i = 0; i < vetorPessoas.size(); i++) {
                pessoa = (Pessoas) vetorPessoas.elementAt(i);
                oarq.writeObject(pessoa);
            }
            oarq.close();
 
 
e para leitura:
 
            FileInputStream is = new FileInputStream(path);
            ObjectInputStream iarq = new ObjectInputStream(is);
            vetorPessoas.clear();
            while (true) {
                try {
                    pessoa = (Pessoas)iarq.readObject();
                    if (pessoa != null)
                        vetorPessoas.add(pessoa);
                    else System.out.println("Nullpointer ERROR");
                }
                catch (EOFException e) {
                    break;
                }
                catch(ClassNotFoundException e) {
                    JOptionPane.showMessageDialog(null, "Class not defined", "Error", JOptionPane.ERROR_MESSAGE);
                    System.exit(0);
                }
            }
 
 
até aí tdo bem, o programa funciona perfeitamente, porem, se eu quiser gravar pessoas sem ter lido elas antes, o programa vai sobescrever o arquivo. Para nao sobescrever eu habilito o append no FileOutputStream, mas daí começa o programa de leitura, lê os dados gravados na 1a vez e depois, nao sei como, ele gera uma exceção de io.FileNotFoundException.
 
Alguem sabe como eu faço para ler um inserir dados em um arquivo com objetos serializados sem precisar le-los antes?
 
 
Valeu
Tales
 

Reply via email to