Я работаю над приложением, которое позволяет мне искать файл внутри устройства с помощью открытого файлового менеджера, а затем сохранять данные в Sqlite. Сначала у меня есть кнопка, которая ищет файлы .txt.
Local.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buscarArchivo = new Intent(Intent.ACTION_OPEN_DOCUMENT);
buscarArchivo.addCategory(Intent.CATEGORY_OPENABLE);
buscarArchivo.setType("text/*");
startActivityForResult(buscarArchivo, 10);
}
});
Я получаю путь к файлу, а затем отправляю его методу readFile (), который отвечает за поиск файла и сохранение данных.
Uri uri = data.getData();
String path = uri.getPath();
path = path.substring(path.indexOf(":") + 1);
String[] texto = leerArchivo(path);
метод, который получает путь и отвечает за чтение файла
private String[] leerArchivo(String path) throws FileNotFoundException {
InputStream inputStream = new FileInputStream(Environment.getExternalStorageDirectory() + "/" + path);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try {
int i = inputStream.read();
while (i != -1) {
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return byteArrayOutputStream.toString().split("\n");
}
Но во время запуска приложения и выбора файла генерируется следующая ошибка
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/Probando.txt: open failed: ENOENT (No such file or directory)
W/System.err: at libcore.io.IoBridge.open(IoBridge.java:452)