Не могу прочитать любой текстовый файл - PullRequest
0 голосов
/ 24 августа 2018

Прежде всего, я бы хотел, чтобы вы сказали, что я здесь новичок и я также новичок в 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 голосов
/ 24 августа 2018

Требуется ли для запроса разрешение?

Попробуйте добавить эту строку в 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...