java中字节流与字符流的区别
1.概念
1.Java中的流是对字节序列的抽象,对于数据的输入/输出操作都是以“流”的方式进行。 2.流具有方向性的,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,则为输出流,反之称为输入流。
2.分类
可以从不同的角度对流进行分类: 1.处理的数据单位不同,可分为:字符流,字节流 2.数据流方向不同,可分为:输入流,输出流 3.功能不同,可分为:节点流,处理流 本次主要是理解字符流和字节流的概念和区别
3.字符流和字节流的概念
1.字符流
基本单位为字节,也就是8bit。 java为我们提供了两个类,分别是FileOutputStream 类 负责写入,FileInputStream类 负责读出,使用它们的时候要抛异常. 1.FileOutputStream 类 写入内容到文件 在写入内容时,需要把字符串通过调用getBytes()转化为byte类型方能写入文件 2.FileInputStream 类 读出文件内容 在读出文件内容时 需要用数组来接收,数组类型为Byte类型
2.字符流
基本单位为Unicode码元,即16bit 使用字符流需要用到4个类 : 1.FileReader类 文件读入BufferReader类 2.文件读入缓冲区 FileWriter 文件写入 BufferWrite 文件写入缓冲区
4.字符流和字节流的区别
1.字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元。 2.字节流默认不使用缓冲区;字符流使用缓冲区。 3.字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元; 字符流通常处理文本数据,它支持写入及读取Unicode码元
