java的I/O接口提供两种传输数据的数据格式:基于字节操作的接口(InputStream和OutputStream)、基于字符操作的接口(Writer和Reader)。
I/O操作最小的存储单元都是字节,也就是说数据持久化及网络传输都是以字节进行的,而不是字符。那么为什么JDK要提供基于字符操作的Writer和Reader的接口呢?原因在于我们在编程过程中通常操作的数据都是字符形式,为了方便操作于是有了直接操作字符的接口,如此而已。(字节与字符的相互转换可以简单理解为byte[]与String的相互转换)