节点流和处理流
“按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类。”
节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader ,节点流由两部分组成:
《1》字符流: InputStream OutputStream(抽象的)
《2》字节流:Reader Writer (抽象的)
处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。
如BufferedReader。处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过
其他流的多次包装,称为流的链接。
常用的节点流
父 类 : InputStream OutputStream Reader Writer
文 件 : FileInputStream FileOutputStrean FileReader FileWriter (处理文件)
数 组 : ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter (处理数组)
字符串(只有字符流): StringReader StringWriter (处理字符串)
管 道: PipedInputStream PipedOutputStream PipedReader PipedWriter (处理管道)
常用处理流(关闭处理流使用关闭里面的节点流)
父 类 : InputStream OutputStream Reader Writer
缓冲流 : BufferedImputStrean BufferedOutputStream BufferedReader BufferedWriter ----需
(要父类作为参数构造,增加缓冲功能,避免频繁读写硬盘,可以初始化缓冲数据的大小,由
于带了缓冲功能,所以就写数据的时候需要使用 “flush” 方法咯 )
转换流 : InputStreamReader OutputStreamWriter- ( 要inputStream 或OutputStream作为
参数,实现从字节流到字符流的转换 )------------作为中介存在
其他特殊记住的类
PrintStream--继承自-->FilterOutputStream--继承自-->OutputStream,(它的构造函数需要OutputStream对象)
* PrintWriter---继承自-->Writer(它的构造函数需要Writer对象)
System.In====InputStream
System.Out===PrintStream
这种流的print方法不会抛出异常