readObject()
その内容をオブジェクト変数に転送する方法が見つからないようです。Load 関数をステップ実行すると、「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;
}