使用Context将文件保存在android的内部存储上

时间:2015-04-07 14:32:00

标签: java android storage android-context

我正在尝试将随机hello world文件保存到我的android的内部存储中。当我运行我的应用程序时,它就会停止。

代码:

public void saveDataOnDevice(String toWrite, String filename) {
    Context ctx = null;
    try {
        FileOutputStream fos = ctx.openFileOutput(filename, Context.MODE_PRIVATE);
        fos.write(toWrite.getBytes());
        fos.close();
    }
    catch (IOException ioe) {
        ioe.printStackTrace();
    }
}

另一个问题是,Context意味着什么。我读了很多关于这个here的内容,但我仍然没有得到它。

1 个答案:

答案 0 :(得分:0)

首先......你的上下文始终为null:Context ctx = null;,所以你无法以任何方式使它工作。

简化:Context,在一个简单的应用中,将是您的MainActivity。在一个更大的应用程序中,你可以有几个上下文,答案会更复杂。

返回您的代码,如果它放在您的MainActivity context内,则会this

public void saveDataOnDevice(String toWrite, String filename) {
    try {
        FileOutputStream fos = this.openFileOutput(filename, Context.MODE_PRIVATE);
        //                     ^ --> refers to main class, in this case your MainActivity
        fos.write(toWrite.getBytes());
        fos.close();
    }
    catch (IOException ioe) {
        ioe.printStackTrace();
    }
}

注意:如果您未在MainActivity中使用此方法,则必须以某种方式将Activity的引用传递给方法或类(属性,方法参数等)。 .etc ...)。

检查Android Developers::saving files以获取更多信息。