JAVA的节点流和处理流
节点流:可以从或向⼀个特定的地⽅(节点)读写数据。如FileReader.
处理流:是对⼀个已存在的流的连接和封装,通过所封装的流的功能调⽤实现数据读写。如BufferedReader.处理流的构造⽅法总是要带⼀个其他的流对象做参数。⼀个流对象经过其他流的多次包装,称为流的链接。
JAVA常⽤的节点流:
⽂件 FileInputStream FileOutputStrean FileReader FileWriter ⽂件进⾏处理的节点流。
字符串 StringReader StringWriter 对字符串进⾏处理的节点流。
数组 ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter 对数组进⾏处理的节点流(对应的不再是⽂件,⽽是内存中的⼀个数组)。
output的反义词管道 PipedInputStream PipedOutputStream PipedReaderPipedWriter对管道进⾏处理的节点流。
常⽤处理流(关闭处理流使⽤关闭⾥⾯的节点流)
缓冲流:BufferedInputStrean BufferedOutputStream BufferedReader BufferedWriter---增加缓冲功能,避免频繁读写硬盘。
转换流:InputStreamReader OutputStreamReader实现字节流和字符流之间的转换。
数据流 DataInputStream DataOutputStream 等-提供将基础数据类型写⼊到⽂件中,或者读取出来.
流的关闭顺序
1. ⼀般情况下是:先打开的后关闭,后打开的先关闭
2. 另⼀种情况:看依赖关系,如果流a依赖流b,应该先关闭流a,再关闭流b。例如,处理流a依赖节点流b,应该先关闭处理流a,再关
闭节点流b
3. 可以只关闭处理流,不⽤关闭节点流。处理流关闭的时候,会调⽤其处理的节点流的关闭⽅法。
注意:
1. 如果将节点流关闭以后再关闭处理流,会抛出IO异常。
2. 如果关闭了处理流,在关闭与之相关的节点流,也可能出现IO异常。(hadoop编程⽂件流操作中遇到了。)
总结:通常在IO的继承树中,继承⾃Filter开头的流或者转化流都是处理流,其他的都是节点流。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论