2012-03-29 48 views
0

我一直用這個代碼:寫入/保存自定義對象的數組的Android的Java

    public void saveCredits(int myInt) { 
     try { 
      OutputStream fos = openFileOutput("test.txt", Context.MODE_PRIVATE); 
      DataOutputStream dis = new DataOutputStream(fos); 
      dis.writeInt(myInt); 
      fos.flush(); 
      fos.close(); 
     } 
     catch (IOException e) { 
      System.out.println(e); 
     } 
     } 

如何修改它以最簡單的方式來還編寫自定義的數組對象,如房屋(字符串名稱,INT成本,地址地址)

+0

你也有讀取它的代碼嗎?爲什麼不使用序列化?這是一個更多的學習,但你將長期保存http://java.sun.com/developer/technicalArticles/Programming/serialization/ – weston 2012-03-29 11:40:38

回答

0

使用的ObjectOutputStream和方法的writeObject() .. Preciseley需要序列化和反序列化你的對象.. more here

1

與DataOutputStream聯合最簡單方法是:

  1. 店數組大小
  2. 然後項目本身

像這樣:

DataOutputStream out = ... ; 
out.writeInt(items.length); 
for (Item item : items) { 
    out.writeUTF(item.someString()); 
    out.writeFloat(item.someFloat()); 
} 

加載這樣的陣列也很簡單:

DataInputStream in = ... ; 
int length = in.readInt(); 
Item[] items = new Item[length]; 
for (int i = 0; i < length; ++i) { 
    items.add(new Item(in.readUTF(), in.readFloat())); 
} 
相關問題