使用 Context 在 android 的内部存储器上保存文件
Saving a file on the internal storage of android using 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,但我还是不明白。
首先...您的上下文始终为空: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
的引用传递给该方法或 class(属性、方法参数等...等...).
查看 Android Developers::saving files 了解更多信息。
我正在尝试将一个随机的 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,但我还是不明白。
首先...您的上下文始终为空: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
的引用传递给该方法或 class(属性、方法参数等...等...).
查看 Android Developers::saving files 了解更多信息。