您的位置:首页 > Web前端 > Node.js

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 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(‘文件压缩完成’)

“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: