将int保存到Android中的文件

时间:2010-12-05 09:44:15

标签: java android file

我有这个代码我下了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();
}

2 个答案:

答案 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 区域内。