狂神说--javase10--IO详解

java给我们封装好了很多的类,IO在以后的开发还算常用。

目前狂神老师还没有推出此类课程,我自己来学学

0.IO框图

Java IO 也称为IO流,IO = 流,它的核心就是对文件的操作,对于 字节 、字符类型的输入和输出流。

IO是指对数据流的输入和输出,也称为IO流,IO流主要分为两大类,字节流和字符流。字节流可以处理任何类型的数据,如图片,视频等,字符流只能处理字符类型的数据。

1.IO流的分类

· 根据数据处理的不同类型分为:字节流和字符流

· 根据数据流向不同分为:输入流和输出流

2.字符流和字节流

字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流对象,本质上其实就是对于字节流的读取时,去查了指定的码表。

字节流和字符流的区别:

· 读写单位的不同:字节流以字节(8bit)为单位。字符流以字符为单位,根据码表映射字符,一次可能读多个字节。

· 处理对象不同:字节流可以处理任何类型的数据,如图片、avi等,而字符流只能处理字符类型的数据。

3.字节流

1、输入字节流 InputStream

从IO中输入字节流的继承图中可以看出。

1)InputStream是所有数据字节流的父类,它是一个抽象类。

2)ByteArrayInputStream、StringBufferInputStream、FileInputStream是三种基本的介质流,它们分别从Byte数组、StringBuffer、和本地文件中读取数据,PipedInputStream是从与其他线程共用的管道中读取数据。

3)ObjectInputStream和所有FileInputStream 的子类都是装饰流(装饰器模式的主角)。

 

2、输出字节流 OutputStream

从IO中输入字节流的继承图中可以看出。

1)OutputStream是所有输出字节流的父类,它是一个抽象类。

2)ByteArrayOutputStream、FIleOutputStream是两种基本的介质,它们分别向Byte 数组,和本地文件中写入数据。PipedOutputStream是从与其他线程共用的管道中写入数据。

3)ObjectOutputStream和所有FileOutputStream的子类都是装饰流。


版权声明:本文为strivenoend原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。