如何读取几个对象FileInputStream?

时间:2014-02-07 13:13:26

标签: java file

首先,变量是葡萄牙语,但不影响代码理解。

这是我的代码:

public ArrayList<Produto> recuperarProdutos(){
    ArrayList<Produto> produtos = new ArrayList<>();
    Produto p = new Produto();

    ObjectInputStream leitorObj = null;
    FileInputStream leitorArquivo = null;
    try {
        leitorArquivo = new FileInputStream("files\\Produtos.ser");
        leitorObj = new ObjectInputStream(leitorArquivo);
        p = (Produto)leitorObj.readObject();
        produtos.add(p);
    } catch(EOFException e) {
    try {
        leitorArquivo.close();
    } catch (IOException ex) {
        System.out.println(ex.getMessage());
    }
    } catch (Exception ex) {
        System.out.println(ex.getMessage());
    } finally {
        try {
            if (leitorArquivo != null) leitorArquivo.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    return produtos;
}

这段代码将在我的ArrayList中添加我文件中的第一个Produto对象。这不是我想要的,是否有Java中的EOF来循环读取每个对象?

1 个答案:

答案 0 :(得分:0)

尝试:

while ((p = (Produto)leitorObj.readObject()) != null) {
    produtos.add(p);
}