NodeJS 复制大文件防治包内存的解决办法

var fs = require('fs');

var rs = fs.createReadStream(src);

var ws = fs.createWriteStream(dst);


rs.on('data',function(chunk){
	if(ws.write(chunk) === false) {     //ws.write()  判断数据流是否已经写入目标了
		rs.pause();
	}
});


rs.on('end',function(){
	ws.end();
});


ws.on('drain',function(){
	rs.resume();   //从新启动读取数据流
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Node.js 中复制文件可以使用 `fs` 模块中的 `copyFile` 方法。下面是一个示例代码: ```javascript const fs = require('fs'); const sourceFile = 'path/to/source/file'; const destinationFile = 'path/to/destination/file'; fs.copyFile(sourceFile, destinationFile, (err) => { if (err) { console.error('Error copying file:', err); return; } console.log('File copied successfully!'); }); ``` 请将 `'path/to/source/file'` 替换为源文件的路径,将 `'path/to/destination/file'` 替换为目标文件的路径。此代码将从源文件复制内容到目标文件。 请确保源文件存在,并具有读取权限。目标文件将被创建或覆盖,因此请确保目标文件所在的目录存在,并具有写入权限。 如果要复制文件较大,或者需要在复制完成后执行其他操作,可以使用 `createReadStream` 和 `createWriteStream` 方法来进行流式复制。 ```javascript const fs = require('fs'); const sourceFile = 'path/to/source/file'; const destinationFile = 'path/to/destination/file'; const readStream = fs.createReadStream(sourceFile); const writeStream = fs.createWriteStream(destinationFile); readStream.on('error', (err) => { console.error('Error reading source file:', err); }); writeStream.on('error', (err) => { console.error('Error writing destination file:', err); }); writeStream.on('finish', () => { console.log('File copied successfully!'); }); readStream.pipe(writeStream); ``` 这种方法使用了流来处理文件复制,适用于大文件复制或需要在复制完成后执行其他操作的情况。 请根据您的具体需求选择合适的方法来复制文件,并确保在复制过程中处理任何潜在的错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值