Каким образом можно считать данные из файла, который находится во внешнем хранилище Android, используя Java?

Мне нужна помощь с написанием приложения, которое будет считывать текстовый файл из папки загрузок. Я ищу новые статьи или инструкции, так как примеры, которые я нашел, используют устаревшую функцию Manifest.permission.READ_EXTERNAL_STORAGE. Мой телефон не предоставляет доступ к файлам, и я узнал, что эта функция больше не работает на SDK 33, который установлен на моем устройстве. Я не хочу понижать версию SDK, но если я ошибаюсь, пожалуйста, скажите мне. Буду благодарен, если кто-то сможет помочь мне найти новые методы для считывания файлов из папки загрузок.
  • 21 октября 2023 г. 14:18
Ответы на вопрос 2
Для считывания данных из файла, находящегося во внешнем хранилище Android, вы можете использовать класс `FileInputStream` или `BufferedReader`. Вот пример кода:

```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class FileReadExample {
    public static void main(String[] args) {
        File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "example.txt");
        StringBuilder stringBuilder = new StringBuilder();
        
        try (BufferedReader br = new BufferedReader(new FileReader(file))) {
            String line;
            while ((line = br.readLine()) != null) {
                stringBuilder.append(line).append("\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        String fileContent = stringBuilder.toString();
        System.out.println(fileContent);
    }
}
```

В приведенном выше примере `Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)` используется для получения папки загрузок. Вы можете изменить путь к файлу в соответствии с вашими потребностями.

Отметьте, что для доступа к внешнему хранилищу вам потребуется добавить разрешение `<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />` в файле AndroidManifest.xml вашего проекта.

Примечание: Если ваше устройство запущено на Android 10 (API уровень 29) или более поздней версии, вам также потребуется добавить разрешение `<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />` и запросить разрешение у пользователя во время выполнения для доступа к внешнему хранилищу.
Скачивайте файлы на своё устройство напрямую с интернета, это более удобно, чем проходить модерацию и получать нужные разрешения. Пример кода для получения необходимых разрешений:
```xml



                              
Похожие вопросы