我有这个代码我下了dev.android.com ...
@Override
protected void onStop(){
FileOutputStream fos = openFileOutput(filename, MODE_PRIVATE);
fos.write(levelComplete);
fos.close();
}
据说这应该创建文件,如果它不存在,否则,它应该写入它。但是,我得到一个FileNotFoundException。帮助
编辑:输入:
@Override
protected void onStart(){
FileInputStream fis = openFileInput(filename);
levelComplete = fis.read();
fis.close();
}
答案 0 :(得分:0)
请尝试以下代码:
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
另外,不要忘记将权限放在清单文件中。 类似的东西:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
这应该有帮助!!
答案 1 :(得分:0)
这可能不是你的问题,但我只想提一下:
如果查看openFileOutput (String name, int mode)
函数的文档,name
参数的说明如下:
name:要打开的文件的名称;不能包含路径分隔符。
请注意,有关 的部分不能包含路径分隔符 。许多人错过了这个并试图指定一个完整的路径(例如/sdcard/myapp/myfile.txt
),但这是不允许的。相反,您应该只指定文件的名称(例如myfile.txt
)。
这样做的原因是openFileOutput
打开了一个文件流到您的应用程序的私有文件(并且文档还说它会创建文件,如果它没有存在)。因此,指定路径没有任何意义,因为它将驻留在您的应用程序 private 区域内。