无法读取任何文本文件

问题描述 投票:0回答:1

首先,我想请你说我在这里很新,我也是Android Studio和Java的初学者。

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

写入文件正在工作,但没有阅读。当我手动创建文本文件并手动将其插入文件夹时,它会读取字符串。

我已经添加了权限并尝试使用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();
}
java android file-io
1个回答
0
投票

请求是否需要许可?

尝试在AndroidManifest.xml文件中添加此行

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

还要在MainActivity中添加此代码,以请求Android API 23+的许可

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

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

@Override
public void onRequestPermissionsResult(int requestCode,
                                       String permissions[], int[] grantResults) {
    switch (requestCode) {
        case 1: {

          // If request is cancelled, the result arrays are empty.
          if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                // permission was granted, yay! Do the
                // contacts-related task you need to do.          
            } else {

                // permission denied, boo! Disable the
                // functionality that depends on this permission.
                Toast.makeText(MainActivity.this, "Permission denied to read your External storage", Toast.LENGTH_SHORT).show();
            }
            return;
        }

        // other 'case' lines to check for other
        // permissions this app might request
    }
}

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

© www.soinside.com 2019 - 2024. All rights reserved.