读写文本文件 android

Reading & Writing to textfile android

我正在尝试使用一个简单的文本文件作为存储一些持久数据的基础,但我在网上看到的所有解决方案都不适合我。

将文本文件放在资产中不允许运行时操作,但允许我从文件中读取。

允许android创建如下所示的文件:

        OutputStream os = openFileOutput("Persistant.txt", MODE_WORLD_READABLE);
        OutputStreamWriter osw = new OutputStreamWriter(os);
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
        bw.write("data");
        bw.newLine();

但是,当稍后尝试从此文件读取时,将返回以下内容: /Persistant.txt:打开失败:ENOENT(没有那个文件或目录)

     BufferedReader in
                = new BufferedReader(new FileReader("Persistant.txt"));

因此,任何人都可以就文本文件的存储位置或问题本身提供帮助吗?

谢谢

您是否已声明在 manifest.xml.. 中读取和写入外部存储的权限?喜欢,

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

您使用 Context 的 openFileOutput() 方法在应用的私有存储中创建文件:

OutputStream os = openFileOutput("Persistant.txt", MODE_WORLD_READABLE);

所以你应该使用 openFileInput() 方法来读取它:

 BufferedReader in = new BufferedReader(
                      new InputStreamReader(openFileInput("Persistant.txt")));

否则,如果你真的想使用文件构造函数,你将首先必须获得文件夹名称:

 BufferedReader in = new BufferedReader(
                      new FileReader(new File(getFilesDir(),"Persistant.txt")));

如果您不这样做,您将尝试从程序的当前工作目录打开文件,该目录可能是设备的根目录 - 而不是您存储文件的位置,也不是您被允许的位置写任何东西。