mirror of
https://github.com/LingCoder/OnJava8.git
synced 2026-08-24 06:53:27 +08:00
↻ 附录:IO 流 - 前两小节
This commit is contained in:
@@ -37,11 +37,11 @@ I/O 流屏蔽了实际的 I/O 设备中处理数据的细节:
|
||||
3. 文件;
|
||||
4. “管道”,工作方式与实际生活中的管道类似:从一端输入,从另一端输出;
|
||||
5. 一个由其它种类的流组成的序列,然后我们可以把它们汇聚成一个流;
|
||||
6. 其它数据源,如 `Internet` 连接。
|
||||
6. 其它数据源,如 Internet 连接。
|
||||
|
||||
每种数据源都有相应的 `InputStream` 子类。另外,`FilterInputStream` 也属于一种 `InputStream`,它的作用是为“装饰器”类提供基类。其中,“装饰器”类可以把属性或有用的接口与输入流连接在一起,这个我们稍后在讨论。
|
||||
每种数据源都有相应的 `InputStream` 子类。另外,`FilterInputStream` 也属于一种 `InputStream`,它的作用是为“装饰器”类提供基类。其中,“装饰器”类可以把属性或有用的接口与输入流连接在一起,这个我们稍后再讨论。
|
||||
|
||||
<span id="table-io-1">**表 I/O-1:`InputStream` 类型**</span>
|
||||
<span id="table-io-1">**表 I/O-1 `InputStream` 类型**</span>
|
||||
|
||||
| 类 | 功能 | 构造器参数 | 如何使用 |
|
||||
| :--: | :-- | :-------- | :----- |
|
||||
@@ -55,7 +55,7 @@ I/O 流屏蔽了实际的 I/O 设备中处理数据的细节:
|
||||
<!-- Types of OutputStream -->
|
||||
## 输出流类型
|
||||
|
||||
如[表 I/O-2](#table-io-2) 所示,该类别的类决定了输出所要去往的目标:字节数组(但不是 `String`,当然,你可以用字节数组自己创建)、文件或管道。
|
||||
如[表 I/O-2](#table-io-2) 所示,该类别的类决定了输出所要去往的目标:字节数组(但不是 `String`,当然,你也可以用字节数组自己创建)、文件或管道。
|
||||
|
||||
另外,`FilterOutputStream` 为“装饰器”类提供了一个基类,“装饰器”类把属性或者有用的接口与输出流连接了起来,这些稍后会讨论。
|
||||
|
||||
@@ -64,7 +64,7 @@ I/O 流屏蔽了实际的 I/O 设备中处理数据的细节:
|
||||
| 类 | 功能 | 构造器参数 | 如何使用 |
|
||||
| :--: | :-- | :-------- | :----- |
|
||||
| `ByteArrayOutputStream` | 在内存中创建缓冲区。所有送往“流”的数据都要放置在此缓冲区 | 缓冲区初始大小(可选) | 用于指定数据的目的地:将其与 `FilterOutputStream` 对象相连以提供有用接口 |
|
||||
| `FileOutputStream` | 用于将信息接入文件 | 字符串,表示文件名、文件或 `FileDescriptor` 对象 | 用于指定数据的目的地:将其与 `FilterOutputStream` 对象相连以提供有用接口 |
|
||||
| `FileOutputStream` | 用于将信息写入文件 | 字符串,表示文件名、文件或 `FileDescriptor` 对象 | 用于指定数据的目的地:将其与 `FilterOutputStream` 对象相连以提供有用接口 |
|
||||
| `PipedOutputStream` | 任何写入其中的信息都会自动作为相关 `PipedInputStream` 的输出。实现“管道化”概念 | `PipedInputStream` | 指定用于多线程的数据的目的地:将其与 `FilterOutputStream` 对象相连以提供有用接口 |
|
||||
| `FilterOutputStream` | 抽象类,作为“装饰器”的接口。其中,“装饰器”为其它 `OutputStream` 提供有用功能。见[表 I/O-4](#table-io-4) | 见[表 I/O-4](#table-io-4) | 见[表 I/O-4](#table-io-4) |
|
||||
|
||||
@@ -90,8 +90,8 @@ I/O 流屏蔽了实际的 I/O 设备中处理数据的细节:
|
||||
|
||||
| 类 | 功能 | 构造器参数 | 如何使用 |
|
||||
| :--: | :-- | :-------- | :----- |
|
||||
| `DataOutputStream` | 与 `DataInputStream` 搭配使用,因此可以按照一直方式向流中写入基本类型数据(`int`、`char`、`long` 等) | `OutputStream` | |
|
||||
| `PrintStream` | 用于产生格式化输出。其中 `DataOutputStream` 处理数据的存储,`PrintOutputStream` 处理显示 | `OutputStream`,可以用 `boolean` 值指示是都每次换行时清空缓冲区(可选) | 应该是对 `OutputStream` 对象的 `final` 封装。可能会经常用到它 |
|
||||
| `DataOutputStream` | 与 `DataInputStream` 搭配使用,因此可以按照移植方式向流中写入基本类型数据(`int`、`char`、`long` 等) | `OutputStream` | 包含用于写入基本类型数据的全部接口 |
|
||||
| `PrintStream` | 用于产生格式化输出。其中 `DataOutputStream` 处理数据的存储,`PrintStream` 处理显示 | `OutputStream`,可以用 `boolean` 值指示是否每次换行时清空缓冲区(可选) | 应该是对 `OutputStream` 对象的 `final` 封装。可能会经常用到它 |
|
||||
| `BufferedOutputStream` | 使用它以避免每次发送数据时都进行实际的写操作。代表“使用缓冲区”。可以调用 `flush()` 清空缓冲区 | `OutputStream`,可以指定缓冲区大小(可选) | 本质上并不提供接口,只是向进程添加缓冲功能。与接口对象搭配 |
|
||||
|
||||
<!-- Readers & Writers -->
|
||||
|
||||
Reference in New Issue
Block a user