FileNotFoundException: /storage/emulated/0/Android
Я пробую этот фрагмент кода для записи / чтения файлов для тестирования:
File file = new File(Environment.getExternalStorageDirectory(), "LM/lm_lisdat_01.txt");
FileOutputStream outputStream = new FileOutputStream(file);
outputStream.write(("test").getBytes());
outputStream.close();
File file = new File(getExternalFilesDir(null), "LM/lm_lisdat_01.txt");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
В строке 4. я получил это сообщение об ошибке ниже, но файл "lm_lisdat_01.txt" был создан в каталоге LM:
java.io.FileNotFoundException: /storage/emulated/0/Android/data/hu.abisoft.lm/files/LM/lm_lisdat_01.txt: открыть не удалось: ENOENT (нет такого файла или каталога)
Может ли кто-нибудь помочь ответить на этот (я думаю, простой) вопрос? Я новичок в Android. Спасибо!
3 ответа
Вы создаете файл в одном каталоге и пытаетесь открыть его для ввода в другом.
Environment.getExternalStorageDirectory()
is / storage / emulated / 0
getExternalFilesDir(null)
is /storage/emulated/0/Android/data/hu.abisoft.lm/files
Используйте тот же каталог для создания файлов и ввода.
С SDK вы не можете записывать в корень внутреннего хранилища. Это вызывает вашу ошибку. Редактировать:
Исходя из вашего кода, чтобы использовать внутреннюю память с SDK:
final File dir = new File(context.getFilesDir() + "/nfs/guille/groce/users/nicholsk/workspace3/SQLTest");
dir.mkdirs(); //create folders where write files
final File file = new File(dir, "BlockForTest.txt");
Пожалуйста, смотрите изменения. Твой путь был неправильным.
А также проверьте, существует ли файл или нет.
File file = new File(Environment.getExternalStorageDirectory(), "LM/lm_lisdat_01.txt");
FileOutputStream outputStream = new FileOutputStream(file);
outputStream.write(("test").getBytes());
outputStream.close();
File file = new File(Environment.getExternalStorageDirectory(), "LM/lm_lisdat_01.txt");//changes here
if(file.exists())
{
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
}