我正在尝试将随机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的内容,但我仍然没有得到它。
答案 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以获取更多信息。