区别:
BufferedWriter
1.有缓冲区(默认8192字符=16384字节) private static int defaultCharBufferSize = 8192;
可以通过构造方法来修改(一般不需修改) public BufferedWriter(Writer out, int sz)
2.由于有缓冲区所以效率要比FileWriter高
3.缓冲区能缓存8192个字符 满了或者close、flush之后才会进行查码表
之后再缓存在StreamEncoder的缓冲区中(8192字节)
4.内部是使用FileWriter来读写的
FileWriter
1.其实内部也有缓冲区(8192字节)
private static final int DEFAULT_BYTE_BUFFER_SIZE = 8192;
2.FileWriter效率低
3.来一个字符查一次码表
缓冲在StreamEncoder的缓冲区中(8192字节)
是父类OutputStreamWriter 中private final StreamEncoder se(负责查码表)的缓冲区