一、什么是流?
流:输入和输出
如何从能够发送字节序列的任何数据源取得输入
如何将输出发送到能够节收字节序列的任何目的地
二、流的分类:
1) 按数据流的方向不同可以分为输入流和输出流
输入流:指一个可以读取自己序列的对象
输出流:指一个可以写入字节序列的对象
2)
抽象类 Reader 、 Writer 的读入和写出操作都是基于两字节的 Unicode 码元的。 read 和 write 方法在执行时都将阻塞,直至字节确实被读入或写出。
3) 按功能不同可以分为节点流和处理流
节点流可以从一个特定数据源(节点)读取数据
处理流是连接在已存在流之上,通过对数据的处理为程序提供更为强大的读写功能
三、 四类常用流的结构
1) InputStream:
a) FileInputStream;//文件相关类
b) PipedInputStream ;//管道相关类
c) FilterInputStream;//过滤流:
i. LineNumberInputStream
ii. DataInputStream
iii. BufferedInputStream
iv. PushbackInputStream
d) ByteArrayInputStream//内存流
e) SequenceInputStream//序列相关流
f) StringBufferInputStream//字符相关流
g) ObjectInputStream //对象相关流
2) OutputStream:
a) FileOutputStream;//文件相关类 b) PipedOutputStream ;//管道相关类
c) FilterOutputStream;//过滤流:
i. DataOutputStream
ii. BufferedOutputStream
iii. PrintStream
d) ByteArrayOutputStream//内存流
e) ObjectOutputStream //对象相关流
3) Reader:
a) BufferedReader
i. LineNumberReader
b) CharArrayReader
c) FilterReader
i. PushbackReader
d) InputStreamReader
i. FileReader
e) PipedReader
f) StringReader
4) Writer:
a) BufferedWriter