我刚刚开始使用Android处理文件,并且整天都在拔头发。这会抛出FileNotFoundException:
public void writeConfig(){
try {
File file = new File(Environment.getExternalStorageDirectory() + "/" + "AppName", "TimetableConfiguration");
if (!file.mkdirs()) {
P.rint("Couldn't create directory");
}
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(getActivity().getSharedPreferences("periods", MODE_PRIVATE).getString("periods", null).getBytes());
fileOutputStream.close();
} catch (FileNotFoundException e) {
P.rint("Didn't find file");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
有什么想法吗? 我注意到它不是创建文件,而是创建子文件夹。它为什么这样做? 感谢您的帮助:))
答案 0 :(得分:0)
FileNotFoundException:创建子文件夹而不是文件
是。这就是你做的。
首先使用mkdirs()创建一个具有特定名称的目录。
之后,您尝试创建一个具有相同名称的文件,这是不可能的,因为不能有两个同名文件或目录。
所以看看你会找到那个目录。
你自己已经推断了大部分。现在尝试理解你的代码。
if(!file.mkdirs()){ P.rint("无法创建目录");
每次重复代码时都会看到打印出来。你也应该看到这个。并告诉我们。
如果目录尚不存在,则只应调用mkdirs。