我尝试使用此文件编写器/阅读器代码段进行测试:
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(没有这样的文件或目录)
可以帮助任何人回答这个(我认为简单的)问题吗?我是Android的新手。谢谢!
答案 0 :(得分:10)
您正在一个目录中创建该文件,并尝试将其打开以在另一个目录中输入。
Environment.getExternalStorageDirectory()
是/ storage / emulated / 0
getExternalFilesDir(null)
是/storage/emulated/0/Android/data/hu.abisoft.lm/files
使用相同的目录进行文件创建和输入。
答案 1 :(得分:1)
请参阅更改。你的道路错了。
并检查文件是否存在。
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)));
}
答案 2 :(得分:1)
使用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");