FileNotFoundException:/storage/emulated/0/Android

FileNotFoundException: /storage/emulated/0/Android

我试试这个文件 writer/reader 代码段进行测试:

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: open failed: ENOENT (No such file or directory)

可以帮助任何人回答这个(我认为简单的)问题吗?我是 Android 的新手。谢谢!

您正在一个目录中创建文件并试图在另一个目录中打开它以进行输入。

Environment.getExternalStorageDirectory() 是 /storage/emulated/0

getExternalFilesDir(null) 是 /storage/emulated/0/Android/data/hu.abisoft.lm/files

使用相同的目录创建和输入文件。

请查看更改。你的路径错了。

同时检查文件是否存在。

    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)));
   }

使用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");