pipe()——进行文件复制

吃可爱长大的小学妹 提交于 2020-03-10 00:14:19

使用pipe()处理大文件

在使用大文件复制的案例中,通过可读流的chunk参数来传递数据,如果把数据比作是水,这个chunk就相当于盆,使用盆来完成水的传递。在可读流中还有一个函数叫作pipe(),这个函数是一个很高效的文件处理方式,可以简化之前复制文件的操作,pipe翻译成中文是管子的意思,使用pipe()进行文件复制相当于把盆换成管子,通过管子来完成数据的读取和写入。

下面通过案例来演示如何使用pipe()处理大文件复制,具体步骤如下:

  1. 在chapter05中创建文件input.txt, 在该文件中添加内容“老师是我心中的太阳,她教给了我们知识”。这里在保存input.txt的时候一定要把编码格式修改为utf8,否则最后会出现错误。
    在这里插入图片描述

  2. 在chapter05目录中创建文件demo5-7.js, 并在该文件中添加如下代码。
    demo5-7.js:

/*
 * 使用pipe()进行文件复制
 */
var fs=require("fs");
//源文件路径
var srcPath='E:\Liu\node.js学习\chapter05\input.txt';
//目标文件路径
var distPath='E:\Liu\node.js学习\chapter05\output1.txt';
var readableStream=fs.createReadStream(srcPath);
var writableStream=fs.createWriteStream(distPath);
// 可以通过使用可读流的函数pipe () 接入到可写流中
//pipe()是一个很高效的数据处理方式
if(readableStream.pipe(writableStream)) {
    console.log('文件复制成功了')
}else{
	console.log('文件复制失败了')
}

在上述代码中,srcPath 为源文件路径,distPath为目标文件路径,将srcPah传入createReadSream()函数,然后通过可读流调用pipe()函数,将可写流作为参数传入完成文件的复制。

打开终端,执行demo5-7.js,结果如图所示。
在这里插入图片描述
从上图中可以看出,读/写操作没有提示错误,表示文件复制成功,这时打开chapter05目录可以看到output1.txt文件,打开output1.txt文件,可以看到与input.txt文件中相同的内容,如图所示。
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!