BufferedWriter的write(String S)方法实际上是缓冲区吗?

Nil*_*h C 3 java performance file-handling bufferedwriter java-8

根据Java SE 8 Documentation,BufferedWriter类有自己的以下方法(写入数据):

write(char[] cbuf, int off, int len)
write(int c)
write(String s, int off, int len)
Run Code Online (Sandbox Code Playgroud)

正如我通过检查此类的源代码确认的那样,它不会覆盖Writer的write(String s)方法.它只是继承它.

我的问题是,给出以下代码:

public static void SaveTextToFile(String fileName, String data, boolean append) throws IOException {
        BufferedWriter bw = new BufferedWriter(new FileWriter(new File(fileName)));
        bw.write(data);
        bw.close();
    }
Run Code Online (Sandbox Code Playgroud)

在写入文件之前,数据是否会被实际缓冲?如果不是,在哪些情况下缓冲发生?

khe*_*ood 6

write(String str)Writer调用中write(String str, int off, int len),覆盖BufferedWriter.所以你的数据将被缓冲.

  • 有效的Java项目17 (3认同)