Java IO
2018-09-01 本文已影响12人
iMasking
两个基础流 基于字节
- InputStream
- OutputStream
Java 的 I/O 操作类在包 java.io 下,大概有将近 80 个类,但是这些类大概可以分成四组,分别是:
基于字节操作的 I/O 接口:InputStream 和 OutputStream
基于字符操作的 I/O 接口:Writer 和 Reader
基于磁盘操作的 I/O 接口:File
基于网络操作的 I/O 接口:Socket (虽然 Socket 类并不在 java.io 包下,但是我仍然把它们划分在一起)
引用自:https://www.ibm.com/developerworks/cn/java/j-lo-javaio/index.html
是阻塞的
InputStream in = System.in;
//在控制台未输入字符前, in.read()会阻塞等待
int num = in.read();
System.out.print((char) num);
ObjectInputStream ObjectOutputStram 与序列化
readObject writeObject ,需要对象实现序列化接口,
- 为什么Serializable接口什么方法都没有还需要显示实现,为什么不直接所以对象可序列化?
- 被序列化的对象引用了其他对象的情况,循环依赖
结构
输入流与输出流层次结构 Reader和Writer层次结构- 由 InputStream OutputStream构建Reader Writer
- 装饰器模式