InputStream 和 OutputStream - 如何区分歧义
InputStream and OutputStream - How to differentiate ambiguity
在我看来,InputStream
和 OutputStream
是 I/O 的不明确名称。
InputStream
可以认为是"to input into a stream",OutputStream
可以认为是"get output of a stream".
毕竟,我们从 "input" 流中读取,但您不应该从 "output" 中读取吗?
选择这两个名称背后的基本原理是什么?记住 Input/Output 流而不混淆另一个的好方法是什么?
将您的 program/code 视为 演员。
- 当 Actor 想要读取内容时,它会寻找一个句柄来
InputStream 导致它的这个流将提供输入。因此,当您阅读它时。
- 当 Actor 想要写出一些东西时,它会寻找句柄
到 OutputStream 然后开始写入句柄
其余的部分。同样你写信给它。
我希望这个答案。我只是将我的代码可视化为经典的 Stick Diagram Actor,将 InputStream 和 OutputStream 可视化为您与之交互的实体。
流的命名不是根据您在代码中使用它们的方式,而是根据它们 完成的工作。 InputStream
完成从程序外部某处(控制台、文件等)读取 input,而 OutputStream
完成写入 output 到其他地方(同样,控制台,文件等)。您的 Java 代码只是这种情况下的中介:为了使用输入,您必须从流中读取它,为了产生输出,您首先必须向流中写入一些内容.
命名的问题只是流的设计总是有一些东西进入和一些东西出来 - 你总是可以读写 on/with 任何流。您只需要记住,它们的命名是因为它们执行的更重要的任务:与您的代码之外的内容进行交互。
在我看来,InputStream
和 OutputStream
是 I/O 的不明确名称。
InputStream
可以认为是"to input into a stream",OutputStream
可以认为是"get output of a stream".
毕竟,我们从 "input" 流中读取,但您不应该从 "output" 中读取吗?
选择这两个名称背后的基本原理是什么?记住 Input/Output 流而不混淆另一个的好方法是什么?
将您的 program/code 视为 演员。
- 当 Actor 想要读取内容时,它会寻找一个句柄来 InputStream 导致它的这个流将提供输入。因此,当您阅读它时。
- 当 Actor 想要写出一些东西时,它会寻找句柄 到 OutputStream 然后开始写入句柄 其余的部分。同样你写信给它。
我希望这个答案。我只是将我的代码可视化为经典的 Stick Diagram Actor,将 InputStream 和 OutputStream 可视化为您与之交互的实体。
流的命名不是根据您在代码中使用它们的方式,而是根据它们 完成的工作。 InputStream
完成从程序外部某处(控制台、文件等)读取 input,而 OutputStream
完成写入 output 到其他地方(同样,控制台,文件等)。您的 Java 代码只是这种情况下的中介:为了使用输入,您必须从流中读取它,为了产生输出,您首先必须向流中写入一些内容.
命名的问题只是流的设计总是有一些东西进入和一些东西出来 - 你总是可以读写 on/with 任何流。您只需要记住,它们的命名是因为它们执行的更重要的任务:与您的代码之外的内容进行交互。