我有一个类将客户对象写入arraylist并将其写入文件。每次写入将附加到文件的末尾。 但是当我尝试读取文件中的所有数据时,它只显示存储在我的arraylist中的第一个对象。
public void readFromFile(){
ArrayList <Customer> list;
try{
final String FILENAME = "..//Files//customer.bin";
FileInputStream fi = new FileInputStream(FILENAME);
ObjectInputStream os = new ObjectInputStream(fi);
list = (ArrayList)os.readObject();
for(Customer cus : list){
System.out.println(cus);
}
os.close();
fi.close();
}
如何显示文件中的所有数据,而不仅仅是第一次写入?
public void writeToFile(){
if(customerList instanceof Serializable){
try{
final String FILENAME = "..//Files//customer.bin";
FileOutputStream fo = new FileOutputStream(FILENAME,true);
ObjectOutputStream os = new ObjectOutputStream(fo);
os.writeObject(customerList);
os.close();
fo.close();
}
catch(FileNotFoundException e){
System.out.println(e.getMessage());
}
catch(IOException io){
System.out.println("Error initaling stream...");
}
catch(Exception w){
System.out.println(w.getMessage());
}
}
}