代码:

//数据的分批写入
let fs = require('fs');
let path = require('path');

//1.生成读取和写入的路径
let readpath = path.join(__dirname, "test.mp4");
let writepath = path.join(__dirname, "abc.mp4");

//第一种复制方式

/*//2.创建一个读取流 let ReadStream = fs.createReadStream(readpath); //3.创建一个写入流 let WriteStream = fs.createWriteStream(writepath); //4.监听读取流的事件 ReadStream.on("open", function () { console.log("表示数据流和文件建立关系成功"); }); ReadStream.on("error", function () { console.log("表示数据流和无文件建立关系失败"); }); ReadStream.on("data", function (data) { // console.log("表示通过读取流从文件中读取到了数据", data); WriteStream.write(data); }); ReadStream.on("close", function () { console.log("表示数据流断开了和文件的关系,并且数据已经读取完毕"); WriteStream.end(); }); //5.监听写入流的事件 WriteStream.on("open", function () { console.log("表示数据流和文件建立关系成功"); }); WriteStream.on("error", function () { console.log("表示数据流和无文件建立关系失败"); }); WriteStream.on("close", function () { console.log("表示数据流断开了和文件的关系,并且数据已经读取完毕"); });*/


//第二种方式,管道符复制:
//2.创建一个读取流
let ReadStream = fs.createReadStream(readpath);

//3.创建一个写入流
let WriteStream = fs.createWriteStream(writepath);
//利用读取流的管道方法实现快速文件拷贝,内部的实现其实就是上面的写法
ReadStream.pipe(WriteStream);

使用第一种方式复制:



文件大小无误

第二种方式复制



大小无误