Writer

WriterOutputStream的区别如下:

Writer是所有字符输出流的超类,它提供的方法主要有:

  • 写入一个字符(0~65535):void write(int c)
  • 写入String表示的所有字符:void write(String s)

FileWriter就是向文件中写入字符流的Writer。它的使用方法和FileReader类似:

CharArrayWriter

StringWriter也是一个基于内存的Writer,它和CharArrayWriter类似。实际上,StringWriter在内部维护了一个StringBuffer,并对外提供了Writer接口。

OutputStreamWriter

除了CharArrayWriterStringWriter外,普通的Writer实际上是基于OutputStream构造的,它接收,然后在内部自动转换成一个或多个byte,并写入OutputStream。因此,OutputStreamWriter就是一个将任意的OutputStream转换为Writer的转换器:

上述代码实际上就是FileWriter的一种实现方式。这和上一节的InputStreamReader是一样的。

  • FileWriter实现了文件字符流输出;

  • CharArrayWriterStringWriter在内存中模拟一个字符流输出。

使用try (resource)保证Writer正确关闭。

读后有收获可以支付宝请作者喝咖啡,读后有疑问请加微信群讨论

Writer - 图1