首先,变量是葡萄牙语,但不影响代码理解。
这是我的代码:
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来循环读取每个对象?
答案 0 :(得分:0)
尝试:
while ((p = (Produto)leitorObj.readObject()) != null) {
produtos.add(p);
}