我創建了一個類,並定期將此類的對象保存到內部存儲器中。讓我們假設這是類:Java中的對象序列化
public class Card{
String name;
double number;
public Card(String name, double number){
this.name = name;
this.number = number;
}
public String getName(){
return name;
}
public double getNumber(){
return number;
}
} //End of class
這是將卡對象的數組對象我的代碼的一部分:
public boolean addCard(String name, double number){
File rFolder = new File(Environment.getExternalStorageDirectory(), "rootFolder");
if (!rFolder.exists()) {
rFolder.mkdirs();
}
Card newCard = new Card(name, number);
try{
FileOutputStream fos = openFileOutput(Integer.toString(getNumber()),MODE_WORLD_READABLE);
//getNumber() is a method that gets the total number of items in the root directory.
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(newWallet);
oos.close();
fos.close();
return true;
}
catch (Exception e){
Toast.makeText(getApplicationContext(), "Failed, try again", Toast.LENGTH_LONG).show();
}
return false;
}
現在,我的問題是如何從這個代表一個文件目錄(這是一個卡對象無論如何)作爲一個卡對象?即使當我使用listFiles()來獲取目錄中的所有文件時,它們也被表示爲文件,而不是Card Objects。
您閱讀關於序列化的教程。那些通常也覆蓋反序列化部分。他們還解釋瞭如何正確序列化對象。例如,通過在正確的流上關閉一次close。 – GhostCat