原文: 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方法把两个数据流连接了起来。连接起来后发生的事情,说得抽象点的话,水顺着水管从一个桶流到了另一个桶。

最新文章

  1. Hadoop分布式系统的安装部署
  2. 关于Unicode,字符集,字符编码,每个程序员都应该知道的事
  3. Win8下安装.Net3.5的完美策略
  4. H5canvas赛车游戏-基于lufylegend引擎
  5. BZOJ 1503: [NOI2004]郁闷的出纳员 splay
  6. iTOP-4412开发板低功耗高性能的开源硬件平台——上手评测
  7. HDU 5119
  8. apt-get下载的文件
  9. hdu 5183 Negative and Positive (NP)
  10. [hadoop源代码解读] 【SequenceFile】
  11. Python使用re实现计算器
  12. docker 学习笔记21:docker连接网络的设置
  13. Mysql动态sql语句,用当前时间做表名
  14. Html5浏览器支持
  15. Beautiful用法总结
  16. Linux常用命令详解(week1_day1_1)--技术流ken
  17. JSOUP 超时分析与处理
  18. s21day11 python笔记
  19. 前端之html概述及基本结构
  20. 2017-2018-1 20155232 嵌入式C语言——时钟

热门文章

  1. PHP 命名空间与自动加载机制介绍
  2. oracle统计字符串包含字符个数
  3. 区别ES3ES5和ES6this的指向问题。区分普通函数和箭头函数中this的指向问题
  4. 国外IOS UI指南
  5. Linux 下smi/mdio总线通信
  6. 百度公共dns
  7. Xamarin adventures – Differences between iOS simulator and device
  8. Java 数组的 12 个最佳方法
  9. ubuntu声音问题
  10. 《“胡”说IC——菜鸟工程师完美进阶》