流定义

我正在阅读Java I / O流,我对与它们相关的正确定义感到困惑。

  • 有人说流是一种传输数据的传送带……
  • 另一个说流是流或数据序列……
  • 另一个说流是连接到输入或输出源…

那么正确的定义是什么?

流是一个概念,但并不严格,只有一个描述是正确的。

I / O流表示输入源或输出目标。 流可以表示许多不同类型的源和目标,包括磁盘文件,设备,其他程序和内存arrays。 Streams 支持许多不同类型的数据,包括简单字节,原始数据类型,本地化字符和对象。 有些流只是传递数据; 其他人以有用的方式操纵和转换数据。

无论它们如何在内部工作,所有流都使用它们的程序提供相同的简单模型 :流是一系列数据。

来自: http : //download.oracle.com/javase/tutorial/essential/io/streams.html

流也是输入流或输出流。 如果它是输入流,则在Java中它将遵循InputStream接口,后者将遵循Outputstream

(旁注:在加密中,流和密码密码之间存在差异,其中密码是(通常意义上)未知的任何信息,而分组密码知道其(最大)大小提前和所有即将到来的块的大小。)

Java程序通过流执行I / O. 流是一种产生或消耗信息的抽象。 Java I / O系统将流链接到物理设备。 所有流的行为方式都相同,即使它们所链接的实际物理设备不同。 因此,相同的I / O类和方法可以应用于任何类型的设备。 这意味着输入流可以抽象许多不同类型的输入:来自磁盘文件,键盘或网络套接字。 同样,输出流可以指控制台,磁盘文件或网络连接。 例如,Streams是一种处理输入/输出的干净方式,而不需要让代码的每个部分都能理解键盘和网络之间的区别。 Java在java.io包中定义的类层次结构中实现流。

来自:Java完整参考

我会说Stream就像所有这些,但不完全是这些。

我会说它是一个8位字节的有序序列。

Java执行I / O抛出流。 流是一种产生或消耗信息的抽象。 流由Java I / O流链接到物理设备。 流是处理输入或输出的清洁方式,而不需要了解代码的每个部分。 Java定义了两种类型的流:字节和字符

在我看来,点流实际上是你在第一点提到的传送带。实际上有两种类型的流,输入和输出。输入流用于从输入设备读取数据,如关键字,并将数据写入文件和输出流用于从磁盘,文件等中读取数据,并将数据写入输出设备,如控制台,监视器等。简单来说,它是帮助将事物从一个点传输到另一个点的桥梁。

只需这样思考:Streams是您可以请求数据或发送数据的对象。