概念:
流的定义:流是指一连串流动的字符,是以先进先出方式发送信息的通道。
按流向分:输出流:OutputStream和Writer为基类
输入流:InputStream和Reader为基类
按处理数据单元划分:字节流:字节输入流:InputStream基类
字节输出流:OutputStream基类
字符流:字符输入流:Reader基类
字节输出流:Writer基类
(字节流是 8 位通用字节流,字符流是16位Unicode字符流)
1.InputStream
概念:
InputStream是字节输入流的根类,Reader是字符输入流的根类。我们所说的输入输出都是相对Java程序而言的,所以输入是把外存中的数据读取到内存中。而分成两个根类的原因是在流的基本单位是字节,但是Java字符使用UTF-16编码,在UTF-16编码中,绝大部分字符是双字节的,所以单独划分一个类别来表示字符输入流。
InputStream是字节输入流,常用的直接实现类有ByteArrayInputStream和FileInputStream,前者是把某byte数组指定为数据源,后者是把文件作为数据源。