Как считать содержимое 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.
Заранее спасибо за помощь!
Для чтения файла из папки загрузок на эмуляторе в 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...