nodejs pipe实现大文件拷贝
2024-09-27 23:31:28
原文: http://nqdeng.github.io/7-days-nodejs/
------------------------------------------------------------------------
大文件拷贝
上边的程序拷贝一些小文件没啥问题,但这种一次性把所有文件内容都读取到内存中后再一次性写入磁盘的方式不适合拷贝大文件,内存会爆仓。对于大文件,我们只能读一点写一点,直到完成拷贝。因此上边的程序需要改造如下。
var fs = require('fs');
function copy(src, dst) {
fs.createReadStream(src).pipe(fs.createWriteStream(dst));
}
function main(argv) {
copy(argv[0], argv[1]);
}
main(process.argv.slice(2));
以上程序使用fs.createReadStream
创建了一个源文件的只读数据流,并使用fs.createWriteStream
创建了一个目标文件的只写数据流,并且用pipe
方法把两个数据流连接了起来。连接起来后发生的事情,说得抽象点的话,水顺着水管从一个桶流到了另一个桶。
最新文章
- Hadoop分布式系统的安装部署
- 关于Unicode,字符集,字符编码,每个程序员都应该知道的事
- Win8下安装.Net3.5的完美策略
- H5canvas赛车游戏-基于lufylegend引擎
- BZOJ 1503: [NOI2004]郁闷的出纳员 splay
- iTOP-4412开发板低功耗高性能的开源硬件平台——上手评测
- HDU 5119
- apt-get下载的文件
- hdu 5183 Negative and Positive (NP)
- [hadoop源代码解读] 【SequenceFile】
- Python使用re实现计算器
- docker 学习笔记21:docker连接网络的设置
- Mysql动态sql语句,用当前时间做表名
- Html5浏览器支持
- Beautiful用法总结
- Linux常用命令详解(week1_day1_1)--技术流ken
- JSOUP 超时分析与处理
- s21day11 python笔记
- 前端之html概述及基本结构
- 2017-2018-1 20155232 嵌入式C语言——时钟