一、输入流区别
字节输入流读取的是字节,字符输入流底层每次读取的是两个字节然后通过解码转换成字符。
二、输出流区别
字节输出流是直接将字节写入到硬盘文件,字符输出流是先将字符写到内存缓冲区,内存缓冲区会对照对应的码表将字符解码成字节,然后调用flush或者close将这些字节写入到硬盘文件。
三、应用区别
字节流可以用于文本、视频、音频、图片各种类型文件的读写操作,字符流一般只适用于读写文本文件最好是中文文本,如果用字符流读写非文本文件容易出现丢数据的问题,比如用字符流来读写图片,读的时候每次是需要拿两个字节去找码表对应的字符,如果没有找到就会标记为未知字符,然后写的时候会将未知字符舍弃,这样就会导致图片文件损坏。