为什么BufferedWriter没有写入文件?

use*_*944 3 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();}
Run Code Online (Sandbox Code Playgroud)

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

此外,程序打印"完成"到控制台,所以我知道它进入了for loop.

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

pet*_*rov 8

bWriter.flush()当您希望将数据实际刷新到磁盘上的文件时调用.或者只是bWriter.close()在与作家合作时打电话.该bWriter.close()呼叫将在bWriter.flush()内部呼叫.

  • 如果可用(Java 7),OP 应该使用`try-with-resources`。 (2认同)