无法读取任何文本文件

时间:2018-08-24 17:06:54

标签: java android file-io

首先,我想告诉您我在这里很新,也是Android Studio和Java的初学者。

我的问题/问题是:
我在Android Studio中有一个应用程序,该应用程序应在特定位置将字符串写入文本文件,并且在应用程序启动时应读取相同的文件。

正在写入文件,但无法读取。当我手动创建文本文件并将其手动插入文件夹时,它将读取字符串。

我已经添加了权限,并尝试使用LogCat查找错误,但目前不知道可能是什么错误。

变量:

File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File(root.getAbsolutePath() + "/myApp");

我的阅读功能:

String myData = "";
try {
    FileReader fileIn = new FileReader(dir + "/data.txt");
    Scanner input = new Scanner(fileIn);
    while (input.hasNextLine()) {
        String line = input.nextLine();
        myData = myData + line;
    }
    input.close();

} catch (Exception ex) {
    ex.printStackTrace();
}

我的写作功能:

try {
    File file = new File(dir, "data.txt");
    FileOutputStream f = new FileOutputStream(file);
    PrintWriter pw = new PrintWriter(f);
    pw.println("answer42");
    pw.flush();
    pw.close();
    f.close();
} catch (Exception ex) {
    ex.printStackTrace();
}

1 个答案:

答案 0 :(得分:0)

是否需要请求权限?

尝试在false文件中添加此行

AndroidManifest.xml

还要将此代码添加到您的<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 中,以请求获得Android API 23+的权限

MainActivity

要获取结果,请使用以下代码

 ActivityCompat.requestPermissions(MainActivity.this,
                new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                1);

更多信息:https://developer.android.com/training/permissions/requesting.html