ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
##文件的复制 ###非流异步方式 ``` const fs = require('fs'); const path = require('path'); console.time('read'); fs.readFile('/tmp/1.iso', function(data, err) { if (err) { throw err } console.timeEnd('read'); console.time('write'); // 读取完文件拿到 fs.writeFile('/tmp/2.iso', function(data, err) { if (err) { throw err } console.timeEnd('write'); console.log('拷贝完成'); }); }); ``` 缺陷: - 大文件拷贝,内存受不了 - 没有进度的概念 ### 文件流的方式的复制 ``` const fs = require('fs'); const path = require('path'); // 创建文件的读取流,并没有读出正式的数据,开始了读取文件的任务() var reader = fs.createReadStream('/tmp/1.iso'); // 创建一个写入流 var writer = fs.createWriteStream('/tmp/1.iso'); // 磁盘: 7200转 6100转 转速越快 读写越快 资源消耗更大 fs.stat('/tmp/1.iso', function (err, stats) { if (stats) { var readTotal = 0; reader.on('data', function(chunk) { // chunk是一个buffer(字节数组) writer.write(chunk, function (err) { console.log('写 进度:' + ((readTotal += chunk.length) / stats.size * 100) + '%'); }); }); reader.on('end', function() { // 没有了 }); } }); ``` ##使用pipe 看api文档