Node.js基础学习2
2017-01-22 14:02
357 查看
Node.js Buffer缓冲区
JavaScript语言自身只要字符型数据类型,没有二进制数据类型。
但是在处理像TCP流或文件流时,必须使用到二进制数据。因此在Node.js中,定义了一个Buffer类,该类用来创建一个专门存放二进制数据的缓存区。
Buffer库为Node.js带来了一种存储原始数据的方法,可以让Node.js处理二进制数据,每当需要在Node.js中处理I/O操作中移动的数据时,就有可能使用Buffer库。
Node.js Stream
var fs = require(‘fs’);
var zlib = require(‘zlib’);
//压缩input.txt文件为input.txt.gz
fs.createReadStream(‘input.txt’)
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream(‘input.txt.gz’));
console.log(‘文件压缩完成’)
“`
JavaScript语言自身只要字符型数据类型,没有二进制数据类型。
但是在处理像TCP流或文件流时,必须使用到二进制数据。因此在Node.js中,定义了一个Buffer类,该类用来创建一个专门存放二进制数据的缓存区。
Buffer库为Node.js带来了一种存储原始数据的方法,可以让Node.js处理二进制数据,每当需要在Node.js中处理I/O操作中移动的数据时,就有可能使用Buffer库。
Node.js Stream
//输出流 var fs = require("fs"); var data = ''; //创建可读流 var readerStream = fs.createReadStream('input.txt'); //设置编码为utf-8 readerStream.setEncoding('UTF8'); //处理流事件 -->data/end/error readerStream.on('data', function (chunk) { data += chunk; }); readerStream.on('end', function () { console.log(data); }); readerStream.on('error', function (err) { console.log(err.stack); }); console.log("程序执行完毕"); `//写入流 var fs = require("fs"); var data = '还有什么能够阻挡'; //创建一个可以写入的流,写入到文件output.txt中 var writeStream = fs.createWriteStream('output.txt'); //使用u8编码写入数据 writeStream.write(data,'UTF8'); //标记文件末尾 writeStream.end(); //处理流事件-->data,end,error writeStream.on('finish',function () { console.log('写入完成') }); writeStream.on('error',function (err) { console.log('err.stack') }); console.log('程序执行完毕')pi var fs = require('fs'); //创建一个可读流 var readerStream = fs.createReadStream('output.txt'); //创建一个可写流 var writeStream = fs.createWriteStream('input.txt'); //管道读写操作 //读取input.txt文件内容,并将内容写到output.txt文件中 readerStream.pipe(writeStream); console.log('程序执行完毕'); 链式流:链式是通过连接输出流到另外一个流并创建多个对个流操作链的机制。链式流一般用于管道操作。接下来我们就是用管道和链式来压缩和解压文件。
var fs = require(‘fs’);
var zlib = require(‘zlib’);
//压缩input.txt文件为input.txt.gz
fs.createReadStream(‘input.txt’)
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream(‘input.txt.gz’));
console.log(‘文件压缩完成’)
“`
相关文章推荐
- Node.js学习--基础知识(3)--回调函数与事件
- Node.js学习--基础知识(7)--fs
- Node.js的基础学习1
- node.js学习(五、基础js语法)
- node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法
- Node.js学习--基础知识(4)--模块与包
- 有 JavaScript 基础,怎么学习 Node.js
- Node.js的学习历程二同步异步调用等基础知识的理解
- Node.js系列基础学习----安装,实现Hello World, REPL
- windows平台 - 0基础学习node.js(一)
- Node.js学习--基础知识(8)--全局对象和全局变量
- node.js 基础学习笔记3 -http
- Node.js学习--基础知识(9)--HTTP客户端
- node.js基础学习
- Node.js学习--基础知识(1)--入门
- Node.js学习--基础知识(6)--常用工具util和事件EventEmitter
- node.js 基础学习笔记2
- node.js 基础学习 express安装使用
- Node.js基础学习
- Node.js的学习历程四npm的基础知识点