在java的世界里 一开始只有字节流
InputStream
OutputStream
后老由于兼顾到文本文件,出现了字符流
Reader
Wrier
而 OutputStreamReader
InputStreamWriter
是提供了字节流和字符流之间的转换
所以在考虑是使用字节流还是字符流时 可与处于两个因素
1,明确数据源和数据目的: 其实是在决定用输入流还是输出流
2,明确操作数据是否是文本数据: 其实是在决定用字节流还是字符流
一般存在的问题:
1,缓存:提读取的效率,注意刷新缓存,flush()
2, 编码: ASCII(一个字节低7位) GB2132(两个字节) GBK(两个字节) ISO8859-1(1个字节 8位) UNICODE(两个字节) UTF-8(一个 两个 或三个字节)