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方法:
当close()方法被调用时,stream对象持有的资源被释放,任何实现了这个类都可以调用close()来进行资源的释放。
InputStream、OutputStream、Reader、Writer四个抽象类都实现了Closeable接口,
它们的子类也都可以直接调用close()释放资源,不过很多实现类都重写了close()方法
当资源关闭失败时,会抛出IOException
Flushable接口
Flushable接口内也只定义了一个flush方法:
当这个方法被调用时,会将缓存中的数据写入到流中
执行失败时,会抛出IOException
Appendable接口
该接口并不是java.io包中的,而是java.lang包中的,但是很多java.io中的类都实现了该接口。看JDK API 说明,意思是如果某个类的实例打算接收取自Formatter的格式化输出,那么必须实现该接口
定义了三个方法:
对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接口并没有很深的理解,暂时只能先这样了,后续再补充完善吧。
相关文章推荐
- JDK 1.7 java.io 源码学习之AutoCloseable接口和try-with-resources语法
- JDK 1.7 java.io 源码学习之AutoCloseable接口和try-with-resources语法
- JDK 1.7 java.io 源码学习之InputStream和OutputStream
- JDK 1.7 java.io 源码学习之ObjectInputStream和ObjectOutputStream
- JDK 1.7 java.io 源码学习之ByteArrayInputStream和ByteArrayOutputStream
- JDK 1.7 java.io 源码学习之FileInputStream和FileOutputStream
- JDK 1.7 java.io 源码学习之Serializable接口
- JDK 1.7 java.io 源码学习之FilterInputStream和FilterOutputStream
- 探究java IO之AutoCloseable,Closeable和Flushable接口
- 探究java IO之AutoCloseable,Closeable和Flushable接口
- Java 源码学习线路————_先JDK工具包集合_再core包,也就是String、StringBuffer等_Java IO类库
- Java集合源码学习(11)_Set接口的实现LinkedHashSet
- java.io-接口学习
- Java集合源码学习(13)_Queue接口以及基础实现AbstractQueue
- java学习之旅59--模拟ArrayList容器的底层实现_JDK源码分析ArrayList
- java学习之旅63常用类_包装类_Integer_Number_JDK源码分析
- Java集合源码学习(17)_BlockingQueue接口的实现LinkedBlockingQueue
- Java集合源码学习(7)_List接口的实现_LinkedList
- JAVA JDK API 源码学习 - Arrays.toString
- Java集合源码学习(5)_List接口的基础实现AbstractList