有人能解释一下什么是输入流和输出流吗?

我对InputStream和OutputStream的用例感到困惑。

如果你能在解释的同时附上一段代码,那就太好了。谢谢!


当前回答

流是液体、空气或气体的连续流动。

Java流是从源到目的的数据流。源或目标可以是磁盘、内存、套接字或其他程序。数据可以是字节、字符或对象。这同样适用于c#或c++流。爪哇溪流的一个很好的比喻是水从水龙头流入浴缸,然后流入排水沟。

数据表示流的静态部分;读和写方法是流的动态部分。

InputStream表示来自源的数据流,OutputStream表示进入目的地的数据流。 最后,InputStream和OutputStream是对数据(如C文件指针)的低级访问的抽象。

其他回答

流:在外行术语中,流是数据,大多数通用流是数据的二进制表示。

输入流:如果您从文件或任何其他源读取数据,则使用的流是输入流。简单地说,输入流充当读取数据的通道。

输出流:如果你想从一个源(文件等)读取和处理数据,你首先需要保存数据,存储数据的意思是输出流。

InputStream和OutputStream的目标是抽象输入和输出的不同方式:流是文件、网页还是屏幕都不重要。重要的是您从流中接收信息(或将信息发送到流中)。

InputStream用于读取的许多内容。

OutputStream用于很多你写入的东西。

下面是一些示例代码。它假设InputStream instr和OutputStream osstr已经创建:

int i;

while ((i = instr.read()) != -1) {
    osstr.write(i);
}

instr.close();
osstr.close();

OutputStream是表示写入输出的抽象类。有许多不同的OutputStream类,它们写入特定的东西(如屏幕、文件、字节数组或网络连接等)。InputStream类访问相同的东西,但是它们从中读取数据。

下面是一个很好的基本示例,使用FileOutputStream和FileInputStream将数据写入文件,然后再将其读入。

在继续其他伟大的答案时,用我简单的话来说:

流-像提到的@Sher Mohammad是数据。

输入流—例如是从文件中获取输入—数据。这种情况是当我有一个文件(用户上传一个文件-输入)-我想读取我们在那里有什么。

输出流-反之亦然。例如,您正在生成一个excel文件,并将其输出到某个地方。

“如何写入”文件,是在发送方(excel工作簿类)定义的,而不是在文件输出流。

请看这个例子。

try (OutputStream fileOut = new FileOutputStream("xssf-align.xlsx")) {
    wb.write(fileOut);
}
wb.close();

流是液体、空气或气体的连续流动。

Java流是从源到目的的数据流。源或目标可以是磁盘、内存、套接字或其他程序。数据可以是字节、字符或对象。这同样适用于c#或c++流。爪哇溪流的一个很好的比喻是水从水龙头流入浴缸,然后流入排水沟。

数据表示流的静态部分;读和写方法是流的动态部分。

InputStream表示来自源的数据流,OutputStream表示进入目的地的数据流。 最后,InputStream和OutputStream是对数据(如C文件指针)的低级访问的抽象。