Как с помощью Java в Android Studio прочитать содержимое текстового файла .txt на эмуляторе для телефона?

Как считать содержимое txt файла из папки загрузок на Java в Android?

У меня есть следующий код для чтения файла:

```java
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView groupsTextView = findViewById(R.id.Groups);

        File file = new File("/storage/emulated/0/Download/tt.txt");

        if (file.exists()) {
            try {
                StringBuilder text = new StringBuilder();
                BufferedReader br = new BufferedReader(new FileReader(file));
                String line;

                while ((line = br.readLine()) != null) {
                    text.append(line).append("\n");
                }

                br.close();

                groupsTextView.setText(text.toString());
            } catch (IOException e) {
                e.printStackTrace();
                groupsTextView.setText("Ошибка чтения файла.");
            }
        } else {
            groupsTextView.setText("Файл не найден.");
        }
    }
}
```

Я уже подключил свой телефон, создал файл "tt.txt" в папке загрузок и разрешил все доступы в настройках разработчика на телефоне. Однако, при запуске приложения, я получаю сообщение "Ошибка чтения файла". Я не понимаю, что я делаю не так. Пожалуйста, помогите мне прочитать строки из txt файла, который находится в папке загрузок.

Я также добавил следующую строку в манифесте: `<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>`. Ранее, когда я писал на обычном Java и выводил результат в консоль, все работало нормально. Я указывал путь к файлу на определенном диске и все было хорошо. Но что-то не получается с Android.

Заранее спасибо за помощь!
  • 20 октября 2023 г. 22:38
Ответы на вопрос 2
Для чтения файла из папки загрузок на эмуляторе в Android Studio вам нужно использовать внутреннее хранилище приложения, а не прямой путь к файлу в файловой системе устройства. Вот пример, как прочитать содержимое текстового файла .txt из папки загрузок вашего приложения:

```java
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView groupsTextView = findViewById(R.id.Groups);

        File downloadsDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
        File file = new File(downloadsDirectory, "tt.txt");

        if (file.exists()) {
            try {
                StringBuilder text = new StringBuilder();
                BufferedReader br = new BufferedReader(new FileReader(file));
                String line;

                while ((line = br.readLine()) != null) {
                    text.append(line).append("\n");
                }

                br.close();

                groupsTextView.setText(text.toString());
            } catch (IOException e) {
                e.printStackTrace();
                groupsTextView.setText("Ошибка чтения файла.");
            }
        } else {
            groupsTextView.setText("Файл не найден.");
        }
    }
}
```

В этом примере файл "tt.txt" ищется в папке загрузок приложения, используя метод `Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)`, который возвращает путь к этой папке на устройстве.

Помимо этого, не забудьте также добавить разрешение чтения внешнего хранилища (`android.permission.READ_EXTERNAL_STORAGE`) в файл манифеста вашего приложения.
Получение доступа к файлам уже несколько лет происходит через стораджи. Вам необходимо запросить доступ у пользователя. Ссылка на дополнительную информацию: https://www.digitalocean.com/community/tutorials/a...
Похожие вопросы