FileNotFoundException:/存储/模拟/0/Android

问题描述 投票:0回答:3

我尝试使用这个文件写入器/读取器代码段进行测试:

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 新手。谢谢!

android file ioerror
3个回答
15
投票

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

Environment.getExternalStorageDirectory()
是/存储/模拟/0

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

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


0
投票

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

并检查文件是否存在。

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

0
投票

文件(getExternalFilesDir(null), "LM/lm_lisdat_01.txt"); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));

© www.soinside.com 2019 - 2024. All rights reserved.