流 是一种抽象的概念,它表示的含义是,文件的传输,就像水流一样,通过 管道 一点一点的传向目的地。流的背后,是一个又一个的 缓冲区,提前为数据做好了准备。

我们在前面小节列举过 fs模块,用它读取过文件。它的做法是把数据一次性读取到内存中,如果写入是一次性把内存中的数据写入到磁盘。如果我们读取的文件非常小,那这样做是没有问题,但是如果是大容量的文件 10G,甚至更大,那么这种模型就很有问题了。

而 Stream 的理念是 边读边取,用这种 IO 方式就破解了上面的难题,节省空间和时间。

管道是 Unix 的核心思想之一,如果你接触过 Linux 操作系统,那么对下面这个操作就很容易理解。

上面做的工作,是读取 a.txt 的内容,写入到 b.txt