【发布时间】:2017-06-09 00:31:30
【问题描述】:
此代码未写入文件,我无法找到原因。
File file = DirectoryChooser.showDialog(fxcontroller.getPrimaryStage());
if (file != null) {
BufferedWriter bw;
try {
File defaultMusicPath = new File("../defaultMusicPath.txt");
bw = new BufferedWriter(new FileWriter(defaultMusicPath,true));
bw.write(file.getAbsolutePath());
System.out.println("done");
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
此图显示 defaultMusicPath.txt 的位置
https://i.stack.imgur.com/8vxSO.png
如果您查看底部,此图像显示 file.getAbsolutePath() 不为空
按照别人所说的,我在这里做了一个最低限度的可验证示例。
我简化了它,但它仍然无法写入文件:
BufferedWriter bw;
File defaultMusicPath = new File("../defaultMusicPath.txt");
try {
bw = new BufferedWriter(new FileWriter(defaultMusicPath,true));
bw.write("it should write this");
bw.flush();
bw.close();
System.out.println("done");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
【问题讨论】:
-
你得到了什么输出?
-
因为你说输出什么都没有,但实际上根据你的图像,输出是done,所以通过添加
System.out.println ("path:" + file.getAbsolutePath());来调试,看看你要写什么 -
显示 defaultMusicPath.txt No 不是,你没有使用这个值。也许您正在查看错误的
defaultMusicPath.txt文件 -
除非必要,否则请不要使用屏幕截图。不清楚您通过全屏捕获显示的内容
-
@Dylan 是的,有...一个在桌面的音乐文件夹中,另一个在您的 Eclipse 项目中
标签: java io bufferedwriter