diff --git a/docs/notes/Java IO.md b/docs/notes/Java IO.md
index 805d4cdc0effe94effaf2e07d77dd485841d2e79..47d6cbf6fa47649c3e83d0eaf48d3a58d8f497d3 100644
--- a/docs/notes/Java IO.md
+++ b/docs/notes/Java IO.md
@@ -97,7 +97,7 @@ Java I/O 使用了装饰者模式来实现。以 InputStream 为例,
- FileInputStream 是 InputStream 的子类,属于具体组件,提供了字节流的输入操作;
- FilterInputStream 属于抽象装饰者,装饰者用于装饰组件,为组件提供额外的功能。例如 BufferedInputStream 为 FileInputStream 提供缓存的功能。
-
+
实例化一个具有缓存功能的字节流对象时,只需要在 FileInputStream 对象上再套一层 BufferedInputStream 对象即可。
@@ -277,8 +277,7 @@ public static void main(String[] args) throws IOException {
- Socket:客户端类
- 服务器和客户端通过 InputStream 和 OutputStream 进行输入输出。
-
-
+
## Datagram
@@ -414,7 +413,7 @@ NIO 实现了 IO 多路复用中的 Reactor 模型,一个线程 Thread 使用
应该注意的是,只有套接字 Channel 才能配置为非阻塞,而 FileChannel 不能,为 FileChannel 配置非阻塞也没有意义。
-
+
### 1. 创建选择器
diff --git a/docs/pics/093f9e57-429c-413a-83ee-c689ba596cef.png b/docs/pics/093f9e57-429c-413a-83ee-c689ba596cef.png
new file mode 100644
index 0000000000000000000000000000000000000000..308dd5b8b444d5b2cb18d0789952f6d6214796cf
Binary files /dev/null and b/docs/pics/093f9e57-429c-413a-83ee-c689ba596cef.png differ
diff --git a/docs/pics/6cfdf7b0-ea9d-4371-893f-76e78f004223.png b/docs/pics/6cfdf7b0-ea9d-4371-893f-76e78f004223.png
new file mode 100644
index 0000000000000000000000000000000000000000..ab419eed73bad4cb5f1af1f44c28865d076f5b35
Binary files /dev/null and b/docs/pics/6cfdf7b0-ea9d-4371-893f-76e78f004223.png differ
diff --git a/docs/pics/9709694b-db05-4cce-8d2f-1c8b09f4d921.png b/docs/pics/9709694b-db05-4cce-8d2f-1c8b09f4d921.png
new file mode 100644
index 0000000000000000000000000000000000000000..f133ec753b5aa8432bba40769a25bfc4c2b034c3
Binary files /dev/null and b/docs/pics/9709694b-db05-4cce-8d2f-1c8b09f4d921.png differ