2014-12-03 86 views
0

我試圖在dat文件裏面存儲一個類型的數組列表,這樣數據在每次關閉程序時都不會丟失。我之前從未做過任何有關序列化的內容,從查看本網站上的其他問題,我認爲這正是我想要的。任何幫助或見解都廣受讚賞!我可以序列化一個數組列表,以便我可以將其存儲在.dat文件中嗎?

+1

你放在'ArrayList'中的所有對象也必須是可序列化的。 – markspace 2014-12-03 19:59:13

+0

您是否閱讀過文檔? – SLaks 2014-12-03 19:59:20

回答

0

ArrayList implements Serializable,所以你可以序列化它。但請記住,ArrayList只是一個項目集合,因此請確保所有項目都是可序列化的。這裏是一個例子

import java.util.ArrayList; 
import java.io.*; 

public class ListSerExample { 
    public static void main(String[] args) { 
     ArrayList<String> lst = new ArrayList<>(); 
     lst.add("a"); 
     lst.add("b"); 
     lst.add("c"); 


     try (FileOutputStream fos = new FileOutputStream("foo.dat"); ObjectOutputStream oos = new ObjectOutputStream(fos);) { 
      oos.writeObject(lst); 
      oos.close(); 
      fos.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     ArrayList<String> deserialized= new ArrayList<>(); 

     try (FileInputStream fis = new FileInputStream("foo.dat"); 
      ObjectInputStream ois = new ObjectInputStream(fis);){ 
      deserialized = (ArrayList) ois.readObject(); 
      ois.close(); 
      fis.close(); 

      System.out.println("deserialized = " + deserialized); 
     } catch (IOException | ClassNotFoundException e) { 
      e.printStackTrace(); 
     } 

    } 
} 
相關問題