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

来源:互联网 发布:淘宝店铺和旺铺的区别 编辑:程序博客网 时间:2024/06/06 00:18

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接口并没有很深的理解,暂时只能先这样了,后续再补充完善吧。

0 0
原创粉丝点击