我似乎找不到readObject()
将其内容传输到对象变量的方法。当我单步执行加载函数时,我得到“temp = (HashMap) ois.readObject();” 在执行此行之前HashMap's
,我可以在 的表达式窗口中看到我用 oos 编写的数据,Eclipse
因此我知道数据在那里,但是当执行此行时,我IOException
会使用EOF
. 从我读到的内容来看,这是预期的,但我还没有找到捕捉 EOF 的方法(带有 available() 的循环并且readObjectInt()
不起作用)。我在 Android 模拟器上运行它。任何建议,将不胜感激。
public void Save(Pottylog data)
{
try
{
FileOutputStream fos = openFileOutput("Plog", Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(data.get());
oos.close();
}
catch (FileNotFoundException ex)
{
ex.printStackTrace();
}
catch (java.io.IOException e)
{
e.printStackTrace();
}
}
public HashMap<String, Integer> Load()
{
HashMap<String, Integer> temp = null;
try
{
FileInputStream fis = openFileInput("Plog");
ObjectInputStream ois = new ObjectInputStream(fis);
temp = (HashMap<String, Integer>) ois.readObject();
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
return temp;
}