将对象写入文件

时间:2015-03-13 00:35:52

标签: java android serialization io

我有一个方法可以将对象写入文件。我尝试了各种方法,但我要么不写信息,要么进入我的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

2 个答案:

答案 0 :(得分:0)

您的Android设备没有C:\\Users\\PERSON\\AndroidStudioProjects\\PROJECT\\目录,主要是因为Android不是Windows,因此Android没有驱动器号。此外,您无法写入Android中的任何目录 - 您的应用仅限于internal storageexternal 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));

诀窍,谢谢你的帮助!