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)));
   }
Другие вопросы по тегам