【发布时间】:2016-11-08 14:28:04
【问题描述】:
在使用 OutputStreamWriter 时,当我尝试创建多个目录(取决于函数结果)并将字符串写入文件时,我遇到了一个异常。
为什么我的程序总是跳到异常并且 saveFile() 总是返回 false?
private boolean saveFile() {
File card = Environment.getExternalStorageDirectory();
File dir = new File(card.getAbsolutePath() + choosePath());
if (!dir.exists()) {
dir.mkdir();// creates directory by the given pathname
}
File file = new File(dir, etFileName.getText().toString());
try {
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write(configString); // from character to byte
osw.flush();
osw.close();
return true;
} catch (IOException e) {
return false;
}
}
【问题讨论】:
-
尝试在调试中执行该代码,以便您了解哪一行失败
-
FileOutputStream fos = new FileOutputStream(file); // 我认为这一行,我不能在模拟器上很好地调试,因为我需要我的目录。我遇到了致命的崩溃,但据我所知,当我点击保存时它返回一个错误,当我尝试查看我的文件列表时它只是崩溃了。在这一行中,它在调试器空指针异常中说,这是奇怪的尝试调试整个早上都没有结果
-
文件是否为空?
-
etFileName.getText() 返回一些值?
-
不,我用吐司检查了 etFileName,它会返回我在文本字段中写的任何文本
标签: android file android-studio directory outputstream