无法从文件反序列化对象的arraylist

时间:2017-10-30 19:35:34

标签: java file-handling

我有一个类将客户对象写入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());
    }
  } 
}

0 个答案:

没有答案