我有一个方法可以将对象写入文件。我尝试了各种方法,但我要么不写信息,要么进入我的catch
语句,我的代码如下:
public void createFoo(Foo foo)
{
ObjectOutputStream out = null;
try
{
out = new ObjectOutputStream(new FileOutputStream("C:\\Users\\PERSON\\AndroidStudioProjects\\PROJECT\\bar.dat"));
out.writeObject(event);
Log.i("CreateFoo", "Write success");
}
catch (IOException e)
{
Log.i("CreateFoo", "Write - Catch error can't find .dat");
}
finally
{
try
{
out.close();
}
catch (Exception e)
{
Log.i("CreateFoo", "Write - Failed to close object output stream.");
}
}
}
我已经尝试过查看其他帖子但我仍然遇到问题,我的Foo对象在其声明中也有implements Serializable
。
答案 0 :(得分:0)
您的Android设备没有C:\\Users\\PERSON\\AndroidStudioProjects\\PROJECT\\
目录,主要是因为Android不是Windows,因此Android没有驱动器号。此外,您无法写入Android中的任何目录 - 您的应用仅限于internal storage,external storage和(在Android 4.4及以上)removable storage。
此外,将来,当您在Stack Overflow上询问有关您的应用崩溃的问题时,use LogCat and post the stack trace。
答案 1 :(得分:0)
更换
out = new ObjectOutputStream(new FileOutputStream("C:\\Users\\PERSON\\AndroidStudioProjects\\PROJECT\\bar.dat"));
带
File outFile = new File(Environment.getExternalStorageDirectory(), "bar.data");
out = new ObjectOutputStream(new FileOutputStream(outFile));
诀窍,谢谢你的帮助!