您的位置:首页 > 移动开发

JDK 1.7 java.io 源码学习之Closeable、Flushable、Appendable接口

2017-02-22 15:08 489 查看
Closeable、Flushable、Appendable三个接口都是比较基础和比较简单的接口。

Closeable接口

Closeable接口继承了AutoCloseable接口,实现了Closeable接口的类也支持try-with-resources自动释放资源。Closeable接口内只定义了一个close方法:

public void close() throws IOException;


当close()方法被调用时,stream对象持有的资源被释放,任何实现了这个类都可以调用close()来进行资源的释放。

InputStream、OutputStream、Reader、Writer四个抽象类都实现了Closeable接口,

它们的子类也都可以直接调用close()释放资源,不过很多实现类都重写了close()方法

当资源关闭失败时,会抛出IOException

Flushable接口

Flushable接口内也只定义了一个flush方法:

void flush() throws IOException;


当这个方法被调用时,会将缓存中的数据写入到流中

执行失败时,会抛出IOException

Appendable接口

该接口并不是java.io包中的,而是java.lang包中的,但是很多java.io中的类都实现了该接口。看JDK API 说明,意思是如果某个类的实例打算接收取自Formatter的格式化输出,那么必须实现该接口

定义了三个方法:

//向此 Appendable 添加指定字符。
Appendable append(char c) throws IOException;
//向此 Appendable 添加指定的字符序列。
Appendable append(CharSequence csq) throws IOException;
//向此 Appendable 添加指定字符序列的子序列。
Appendable append(CharSequence csq, int start, int end) throws IOException


对Appendable接口并没有很深的理解,暂时只能先这样了,后续再补充完善吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java