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)。谢谢。这解决了我的问题。