修正了一些错误

master
高宏宇 3 weeks ago
parent 573873666f
commit ca56eedfda

@ -70,7 +70,7 @@ classDiagram
环境了,比上述的网络的例子要包含更多的内容,但是基本的思路是一致的。
![image-20230326142026039](img/image-20230326142026039.png)
![alt text](img/BufferedSteam.drawio.svg)
在文件系统中有个流Stream的概念初学者可能对这个概念理解起来比较困难。上述两个抽象类InputStreamOutputStream其实主要的目的就是定义读和写的抽象方法InputStreamOutputStream。后面的派生类都需要实现这两个方法。只不过加入了更多的内容。
@ -98,7 +98,7 @@ classDiagram
### 2.1. FileInputStream/FileOutputStream
![image-20230326151754475](img/image-20230326151754475.png)
![alt text](img/BufferedSteam.drawio.svg)
这两个类型实现了对文件的读和写操作。
@ -143,17 +143,17 @@ public class TestFileStream {
在学习`DataInputStream` 和 `DataOutputStream` 前,我们先来看看其直接超类:`FilterInputStream` 和 `FilterOutputStream`
![image-20230326210655128](img/image-20230326210655128.png)
![alt text](img/BufferedSteam.drawio.svg)
> Filter streams are streams that filter bytes for some purpose. The basic byte input stream provides a read method that can only be used for reading bytes. If you want to read integers, doubles, or strings, you need a filter class to wrap the byte input stream. Using a filter class enables you to read integers, doubles, and strings instead of bytes and characters. FilterInputStream and FilterOutputStream are the base classes for filtering data. When you need to process primitive numeric types, use DataInputStream and DataOutputStream to filter bytes.
>
> 这个类很奇怪,书上说如果需要做不同数据类型的读写,需要该类型。其实情况要复杂得多,有兴趣可以研究其源代码。奇怪的是,这个类型是非抽象类型,但是却不能使用 new 方法创建(看源码可以分析出来)
> 书上没有说清楚这两个类其实很简单扩展自InputStream, 和 OutputStream并实现了父类的基本方法是一个典型的装饰器设计模式。同时内部还包含了 InputStrem / OutputStream 这样可以把多个 Filter 串联起来,实现数据的串联加工。例如加密、发送,接收、解密。讨论该类型超出了本课程的范围,有兴趣的同学可以自行研究一下
关于这个类其实要讲的话会很多,现在大家知道是 InputStream 和 OutputStream 的超类就可以了。
关于这个类其实要讲的话会很多,现在大家知道是 DataInputStream 和 DataOutputStream 的超类就可以了。DataInputStream和DataOutputStream 内部实现了版本的管理,有兴趣的同学可以分析源码,看看写入的时候在文件的头部加入了相应的标记,以及其他一些附加数据。
再来看看InputStream 和 OutputStream这两个类是可以实例化的并可以读写文件的各种基本类型原始类型
再来看看DataInputStream 和 DataOutputStream这两个类是可以实例化的并可以读写文件的各种基本类型原始类型
![image-20230326154038645](img/image-20230326154038645.png)
![alt text](img/BufferedSteam.drawio.svg)
这个类的基本接口如下图:

Loading…
Cancel
Save