Java IO - FilterReader&FilterWriter
来源:互联网 发布:网络血滴子是什么意思 编辑:程序博客网 时间:2024/06/10 01:40
基本概念
字符过滤流(FilterReader/FilterWriter)与 字节过滤流(FilterInputStream / FilterOutputStream )的原理一致,都是通过操作要过滤的流本身的方法来实现。
不同就是字符过滤流是抽象类,而字节过滤流不是。
源码分析
1.FilterReader
类结构图
观察源码,发现在 FilterReader 中不外乎地都调用流本身的方法来实现各种操作,这点与 FilterInputStream 一致。
public abstract class FilterReader extends Reader { //代表要操作的流 protected Reader in; protected FilterReader(Reader in) { super(in); // 将流赋于成员变量 in,说明操作的并不是输入流本身 this.in = in; } public int read() throws IOException { return in.read(); } public int read(char cbuf[], int off, int len) throws IOException { return in.read(cbuf, off, len); } public long skip(long n) throws IOException { return in.skip(n); } public boolean ready() throws IOException { return in.ready(); } public boolean markSupported() { return in.markSupported(); } public void mark(int readAheadLimit) throws IOException { in.mark(readAheadLimit); } public void reset() throws IOException { in.reset(); } public void close() throws IOException { in.close(); }}
2.FilterWriter
类结构图
与字节过滤流不同:
write 操作全部调用输出流本身的方法。
调用 close 方法之前不会调用 flush 方法。
public abstract class FilterWriter extends Writer { // 表示要过滤的输出流 protected Writer out; protected FilterWriter(Writer out) { super(out); // 将流赋于成员变量 out,说明操作的并不是输出流本身 this.out = out; } public void write(int c) throws IOException { out.write(c); } public void write(char cbuf[], int off, int len) throws IOException { out.write(cbuf, off, len); } public void write(String str, int off, int len) throws IOException { out.write(str, off, len); } public void flush() throws IOException { out.flush(); } public void close() throws IOException { out.close(); }}
0 0
- Java IO - FilterReader&FilterWriter
- Java IO笔记(FilterReader/FilterWriter)
- Java_io体系之FilterWriter、FilterReader简介、走进源码及示例——15
- 【Java-IO】IO入门
- Java IO:IO框架
- 【IO】java IO 总结
- java IO
- IO.java
- JAVA IO
- JAVA IO
- java IO
- java io
- JAVA IO
- java IO
- java IO
- java io
- java io
- java io
- 使用了非标准扩展: 限定名中使用了枚举
- 【C++】灵活使用C/C++宏定义
- github个人页面初步搭建
- Middle-题目112:152. Maximum Product Subarray
- SESSION 与COOKIE的区别
- Java IO - FilterReader&FilterWriter
- 免安装Tomcat服务的安装
- SDNUOJ1012(区间合并)
- 练习三 Problem X
- document.cookie
- 空间分析相关接口(ITopologicalOperator,IRelationalOperator,IProximityOperator)
- Middle-题目113:324. Wiggle Sort II
- 设计模式—单例模式
- 机器学习中的相似性度量