为什么BufferedWriter没有写入文件?

时间:2014-01-18 22:27:56

标签: 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())) {
            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();}

在此之前我有相同的代码2或3次,而BufferedWriter写得非常完美。但由于某种原因,当我得到这个代码时它不会写。我一直在寻找可能出错的东西,但我无法改变一些东西并快速测试,因为该程序需要10分钟来完成这一部分。

此外,该程序将“完成”打印到控制台,因此我知道它将进入for loop

关于我做错了什么的想法?

2 个答案:

答案 0 :(得分:7)

如果希望将数据实际刷新到磁盘上的文件,请调用bWriter.flush()。 或者,当您与作家合作完成后,只需致电bWriter.close()即可。 bWriter.close()来电将在内部拨打bWriter.flush()

答案 1 :(得分:0)

我假设您想添加if(!file.exists())而不是if((file.exists()))