代码:
//数据的分批写入
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);
使用第一种方式复制:
文件大小无误
第二种方式复制
大小无误