- 字节流和字符流在使用上的代码结构都是非常类似的,但是其内部本身也是有区别的,因为在进行字符流操作的时候会使用到缓冲区,而字节流操作的时候是不会使用到缓冲区的。
- 在输出的时候,OutputStream类即使最后没有关闭内容也可以输出。但是如果是Writer的话,则如果不关闭,最后一条内容是无法输出的,因为所有的内容都是保存在了缓冲区之中,每当调用了close()方法就意味着清空缓冲区了。那么可以证明字符流确实使用了缓冲区:
- 字节流:程序 → 文件
- 字符流:程序 → 缓冲区 → 文件
- 如果现在字符流即使不关闭也可以完成输出的话,则必须强制性清空缓冲区:
- 方法:public void flush()throws IOException
- 两者相比,肯定使用字节流更加的方便,而且在程序中像图片、MP3等都是采用字节的方式的保存,那么肯定字节流会比字符流使用的更广泛。
- 但是需要说明的是,如果要是想操作中文的话,字符流肯定是最好使的。
相关文章
- 黑马程序员--Java基础学习之IO流之字节流、字符流、读取写入文件、Copy文件、键盘输入输出、流操作的基本规律
- 黑马程序员---java基础之IO(字符流和字节流)
- Java字符流和字节流对文件操作
- UTF-8编码字符串的Trim() 在.35和4.0中的行为区别
- MySQL DISTINCT关键字详解:用法、实际应用和与GROUP BY的区别
- Java基础知识强化之IO流笔记04:throw和throws的区别
- C字符串和C++中string的区别 &&&&C++中int型与string型互相转换
- GBK和UTF-8文字编码的区别:
- MySQL字符集 utf8 和 utf8mb4 区别及排序规则 general_ci 和 unicode_ci 和 bin 的区别
- 谷歌的数据流和谷歌的数据流有什么区别?