Java IO学习笔记之字节流和字符流

Java的I/O类库的基本架构
Java的I/O操作类在包java.io,大概有将近80个类,分为:
基于字节操作的I/O接口:InputStream和OutputStream。
基于字符操作的I/O接口:Writer和Reader。
基于磁盘操作的I/O接口:File。
基于网络操作的I/O接口:Socket。

InputStream类图:
这里写图片描述

OutputStream类图:
这里写图片描述

Reader类图:
这里写图片描述

Writer类图:
这里写图片描述

字节流笔记:
1、InputStream和OutputStream:抽象类,字节流,实际使用中只能是子类。
2、ByteArrayInputStream和ByteArrayOutputStream:带有缓冲区的字节流,并且关闭流操作是无效的,也就是说这两个类的方法在流关闭以后还可以调用。
3、FileInputStream和FileOutputStream:读写字节文件的流。
4、ObjectOutputStream和ObjectInputStream:读写实现了Serializable序列化接口的对象。
5、PipedInputStream和PipedOutputStream:实现在两个线程,通过管道输入输出流建立管道已完成数据交换,一旦其中某条线程死亡,管道破坏。
6、FilterInputStream和FilterOutputStream:这个两个类覆盖了InputStream和OutputStream的所有方法,其子类进一步覆盖一些方法,提供额外的功能。

字符流笔记:
1、Reader和Writer:抽象类,字符流,实际使用中只能是子类。
2、InputStreamReader和OutputStreamReader:这两个是字节流和字符流之间的桥梁,前者从字节文本读取字节并且使用指定的字符集解码成字符,后者把字符用指定的字符集编码成字节写入的字节文本。
3、StringReader和StringWriter:以字符串作为源或者终点,并且在StringWriter的流关闭以后,任然可以调用其方法,也就是说关闭无效。
4、PipedReader和PipedWriter:字符管道。
5、CharArrayReader和CharArrayWriter:带有缓冲区的字符流。对于CharArrayWriter流关闭无效。

猜你喜欢

转载自blog.csdn.net/qq_36006553/article/details/77334885