我创建了一个类,并定期将此类的对象保存到内部存储器中。让我们假设这是类: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