输入流与输出流有何不同?

dav*_*ine 6 java inputstream outputstream

我看到两者都是数据的"流".在那种情况下,为什么认为它们不同?真的有什么区别?

评论 - 请不要关闭此问题.这是一种基本的东西,可以在面试中混淆人们.

更新1 - 每个人似乎都说同样的事情 - 你从IS读取并写入操作系统.所以,它们基本相同.就像一条水流过它的管道.当您使用该管道中的水时,您将其称为InputStream,当您将水泵入其中时,它称为输出流.它真的那么微不足道吗?

UPDATE2 - 如果差异不那么"大",那么我们可以有一个InAndOutStream而不必为两个类(InputStream和OutputStream)创建代码吗?

Nik*_*sov 15

它们在概念上是不同的

  • InputStream你看
  • OutputStream你写

  • @davidblaine,但是在运行时你的`InAndOutStream`无论如何都要输入或输出,而不是同时输入或输出,所以这会令人困惑. (2认同)
  • 最好不要在程序中混合使用它们,因为这些类型可以帮助您跟踪每个流应该做什么. (2认同)

Sub*_*der 5

流是您按顺序访问的数据。你可以把它想象成一列从隧道入口观看的火车,这样你一次只能看到一辆车。或者一串小部件穿过传送带,要求您拧紧每个小部件上的螺钉,然后再将其传递到装配线上的下一个人,后者必须用锤子敲击它,等等。或者当您在桥上观看时,木棍顺流而下。

无论它们内部如何工作,所有流都向使用它们的程序呈现相同的简单模型:流是数据序列。程序使用输入流从源读取数据,一次读取一项: IO流

程序使用输出流将数据写入目标,一次一项: IO流