阅读与阅读写入文本文件android

时间:2015-04-09 12:07:20

标签: android filereader file-writing

我试图使用简单的文本文件作为存储一些持久数据的基础,我在网上看到的所有解决方案都没有为我工作。

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

允许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"));

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

由于

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

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

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

答案 1 :(得分:-2)

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

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