1.字节流

1.字节流

InputStream、OutputStream及其子类是“字节流”,以字节为处理单位。

抽象类InputStream的主要方法如表2.10.2所示。

表2.10.2 InputStream的主要方法

抽象类OutputStream的主要方法如表2.10.3所示。

表2.10.3 OutputStream的主要方法

主要的字节流有如下几种。

(1)FileInputStream/FileOutputStream

字节流中的FileInputStream/FileOutputStream是直接和文件相联的节点流。

【代码10.2】实现把e:\test\t1.jpg拷贝为“e:\test\t2.jpg”

【代码10.3】用另一种方式把e:\test\t1.jpg拷贝为e:\test\t2.jpg

(2)BufferedInputStream/BufferedOutputStream

BufferedInputStream/Buffered OutputStream是缓存流,需要用节点流作为参数的处理流,不能直接和文件相联。缓存流提供数据缓存处理,只有当缓存区满了的时候,才从缓存区读入或者写出,这样可以减少IO次数,使得读写操作更加高效。写出时,数据有可能写入缓冲区,没有即刻写出到外设,可以用flush()将缓存区中的数据压入外设文件。流对象关闭的时候,会将缓冲区内容写入外设。

(3)DataInputStream/DataOutputStream

DataInputStream/DataOutputStream是处理流,可以按照数据类型进行读写。

【代码10.4】DataInputStream/DataOutputStream的使用案例

代码10.4的运行结果: