【发布时间】:2017-04-29 14:22:26
【问题描述】:
我发现很多主题都有相同的问题,但他们无法解决我的问题。 我最初写一个文件如下:`
File root = new File(Environment.getExternalStorageDirectory(), "Notes");
if (!root.exists()) {
root.mkdirs();
}
File notefile = new File(root, sFileName);
FileWriter writer = null;
try {
writer = new FileWriter(notefile);
} catch (IOException e1) {
e1.printStackTrace();
}
try {
writer.append(sBody);
} catch (IOException e1) {
e1.printStackTrace();
}
try {
writer.flush();
} catch (IOException e1) {
e1.printStackTrace();
}
try {
writer.close();
} catch (IOException e1) {
e1.printStackTrace();
}
不要担心 try 和 catch 块,我稍后会清除它们:D。 这是应该在同一目录中工作的阅读器(SD卡的“Notes”,如果它不存在,将被创建),读取文件,并将其放在通知中,如您所见:`
File root = new File(Environment.getExternalStorageDirectory(), "Notes");
if (!root.exists()) {
root.mkdirs();
}
File file = new File(root, "Nota.txt");
//Read text from file
text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
br.close() ;
}catch (IOException e) {
e.printStackTrace();
}
我真的不明白为什么我会遇到这个问题,我什至尝试使用
getExternalStorageDirectory().getAbsolutePath()
但没有成功。
有人可以帮我吗?
【问题讨论】:
-
您是否在清单中设置了权限?
-
检查mkdirs()的返回值,如果返回false则不继续。它可能没有创建目录。
-
哪个安卓版本? 6?
-
我在 WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE 清单中有权限。我的版本是 5.0,现在我尝试检查 mkdirs()
-
编辑:它使用 mkdirs() 创建目录,它返回 true
标签: java android bufferedreader readfile filenotfoundexception