Java 为什么BufferedWriter没有写入文件?
我有以下代码:Java 为什么BufferedWriter没有写入文件?,java,file-io,filewriter,bufferedwriter,Java,File Io,Filewriter,Bufferedwriter,我有以下代码: String[] strings = {"Hi" , "You", "He", "They", "Tetrabenzene", "Caaorine", "Calorine"}; File file = new File("G:\\words.txt"); FileWriter fWriter; BufferedWriter bWriter; try { if((file.exists())) {
String[] strings = {"Hi" , "You", "He", "They", "Tetrabenzene", "Caaorine", "Calorine"};
File file = new File("G:\\words.txt");
FileWriter fWriter;
BufferedWriter bWriter;
try {
if((file.exists())) {
file.createNewFile();
}
fWriter = new FileWriter(file.getAbsoluteFile(), true);
bWriter = new BufferedWriter(fWriter);
//Convert Result objects to JSON and write to file
for(int j = 0; j < strings.length; ++j) {
bWriter.write(strings[j]);
bWriter.newLine();
System.out.println("done");
}
}
catch(IOException e) {e.printStackTrace();}
String[]strings={“Hi”,“You”,“He”,“They”,“Tetrabenzene”,“Caaorine”,“carrine”};
文件=新文件(“G:\\words.txt”);
文件编写器;
缓冲写入程序;
试一试{
如果((file.exists())){
createNewFile();
}
fWriter=newfilewriter(file.getAbsoluteFile(),true);
bWriter=新的缓冲写入程序(fWriter);
//将结果对象转换为JSON并写入文件
对于(int j=0;j
在此之前,我有过两三次几乎相同的代码,BufferedWriter
写得非常好。但出于某种原因,当我看到这段代码时,它并没有写。我一直在寻找可能错误的东西,但我不能改变一些东西并快速测试它,因为程序只需要10分钟就可以到达这一部分
此外,该程序将“完成”打印到控制台,因此我知道它将进入for循环
关于我做错了什么,你有什么想法吗?当你想将数据刷新到磁盘上的文件时,请调用bWriter.flush()
。
或者在完成编写器的工作后,只需调用bWriter.close()
。
bWriter.close()
调用将在内部调用bWriter.flush()
。我假设您想添加if(!file.exists())
而不是if((file.exists())
在结尾关闭你的作者<代码>bWriter.close();fWriter.close()代码>适用于可能有相关问题的其他人。我在finally块中有close语句,而BufferedWriter不起作用。当我把close语句放回try块时,它又起作用了。OP应该使用try with resources
(Java 7)。谢谢。这解决了我的问题。