BufferedWriter和FileWriter的区别

区别:

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(负责查码表)的缓冲区


BufferedWriter和FileWriter的区别_第1张图片

你可能感兴趣的:(BufferedWriter和FileWriter的区别)