本文实例讲述了node Buffer缓存区常见操作。分享给大家供大家参考,具体如下:
创建buffer类
var buf=new buffer(10);
var buf=new buffer([10,20,30,40]);
var buf=new buffer("www.baidu.com","utf-8");写入缓存区
buf.write(string[,offset[,length]][encoding])
buf=new buffer(256);
len=buf.write("www.baidu.com")
console,log("写入字节数:"+len)从缓存读取数据
buf.toString([encoding[,start[,end]]])
buf=new buffer(2...
一,开篇分析
所谓缓冲区Buffer,就是 "临时存贮区" 的意思,是暂时存放输入输出数据的一段内存。
JS语言自身只有字符串数据类型,没有二进制数据类型,因此NodeJS提供了一个与String对等的全局构造函数Buffer来提供对二进制数据的操作。除了可以读取文件得到Buffer的实例外,还能够直接构造,例如:代码如下:var buffer = new Buffer([ 0x68, 0x65, 0x6c, 0x6c, 0x6f ]) ; Buffer与字符串类似,除了可以用.length属性得到字节长度...
我希望能够过滤输出.但是,我遇到从缓冲区转换为字符串的问题.的console.log(JSON.stringify(obj.toString()));继续给我[对象]我不能使用.如何将缓冲区转换为字符串,以便我可以将内容过滤到stdout?//inject 'bower and javascript' files or just 'javascript' files
function injectStream(sourceStream, filesStream) {sourceStream.pipe(injector(filesStream, { ignorePath: 'app', addRootSlash: false })).pipe(gulp.dest(IN...
方法说明:
该方法将返回buffer对象的长度。
语法:代码如下:
buffer.length接收参数:
无
例子:代码如下:
buf = new Buffer(1234);
console.log(buf.length);
buf.write("some string", 0, "ascii");
console.log(buf.length);
// 1234
// 1234
对于初学Node.js框架的开发人员来说,可能认为Buffer模块比较易学、重要性也不是那么突出。其实,Buffer模块在文件I/O和网络I/O中应用非常广泛,其处理二进制的性能比普通字符串性能要高出很多,重要性可谓是举足轻重。下面我们通过一个例程向读者演示一下,使用buf.concat()方法进行拼接的过程。
本例ch04.buffer-concat.js主要代码如下:/** * ch04.buffer-concat.js */
console.info("------ Buffer concat vs String concat ...
我们知道Node.js框架下的Buffer对象能够对二进制数据提供很好的支持,那么获取一个Buffer对象真实的字节长度则是必须要用到的功能了。Node.js框架为开发人员提供了一个Buffer.byteLength()方法,下面我们借助一个官方文档提供的例程向读者演示一下该方法的使用过程。
本例ch04.buffer-byteLength.js主要代码如下:/*** ch04.buffer-byteLength.js*/console.info("------Buffer.byteLength()------");console.info();str = \u00bd +...
方法说明:
将制定数据填充到buffer中。
语法:代码如下:
buffer.fill(value, [offset], [end])接收参数:
value 将要填充的数据
offet 填充数据的开始位置,不指定默认为 0
end 填充数据的结束位置,不指定默认为 buffer 的 长度。
例子:代码如下:
//例子1中,不指定填充内容的起止位置
var b = new Buffer(50);
b.fill("h");
//例子2中,指定了填充内容的起止位置
var b = new Buffer(50);
var ...
方法说明:
检测目标是否为buffer对象。将返回true 或 false。
语法:代码如下:
Buffer.isBuffer(obj)接收参数:
obj 被检测的对象。
例子:代码如下:
var b = new Buffer(50);
var c = b.toString(base64,0,10);
var d = Buffer.isEncoding(base64);
var e = Buffer.isBuffer(b);
console.log(d); //返回false
console.log(e); //返回true源码:代码如下:
// Static methods
Buffer...
方法说明:
进行不同buffer之间的复制替换操作。
从源buffer复制数据 并替换到目标buffer的指定位置。
语法:代码如下:
buffer.copy(targetBuffer, [targetStart], [sourceStart], [sourceEnd])接收参数:
targetBuffer 目标buffer,执行复制替换的buffer
targetStart 目标buffer数据替换的起始位置
sourceStart 源buffer数据复制的起始位置
sourceEnd 源buffer数据复制的结束位置
例子:
在该...
方法说明:
获取字符串的字节长度。
这个函数与 String.prototype.length 不同点在于,后者返回的是字符串的字符数。
语法:代码如下:
Buffer.byteLength(string, [encoding])接收参数:
string 字符创
encoding 字符串编码,默认为 ‘utf8′
例子:代码如下:
str = \u00bd + \u00bc = \u00be;
console.log(str + ": " + str.length + " characters, " +Buffer.byteLength(st...
方法说明:
进行不同buffer之间的复制替换操作。
从源buffer复制数据 并替换到目标buffer的指定位置。
语法:代码如下:
buffer.copy(targetBuffer, [targetStart], [sourceStart], [sourceEnd])接收参数:
targetBuffer 目标buffer,执行复制替换的buffer
targetStart 目标buffer数据替换的起始位置
sourceStart 源buffer数据复制的起始位置
sourceEnd 源buffer数据复制的结束位置
例子:
在该...
对于初学Node.js框架的开发人员来说,可能认为Buffer模块比较易学、重要性也不是那么突出。其实,Buffer模块在文件I/O和网络I/O中应用非常广泛,其处理二进制的性能比普通字符串性能要高出很多,重要性可谓是举足轻重。下面我们通过一个例程向读者演示一下,使用buf.concat()方法进行拼接的过程。
本例ch04.buffer-concat.js主要代码如下:
/** * ch04.buffer-concat.js */
console.info("------ Buffer concat vs String concat...
JavaScript很擅长处理字符串,但是因为它最初的设计是用来处理HTML文档,因此它并不太擅长处理二进制数据。JavaScript没有byte类型,没有结构化的类型(structured types),甚至没有字节数组,只有数字和字符串。(原文:JavaScript doesnt have a byte type — it just has numbers — or structured types, or http://skylitecellars.com/ even byte arrays: It just has strings.)因为Node基于JavaScript,它自然可以处理类似...
本篇文章给大家带来的内容是关于Nodejs中buffer是什么?Nodejs中buffer类的用法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。JavaScript 起初为浏览器而设计,没有读取或操作二进制数据流的机制。Buffer类的引入,则让NodeJS拥有操作文件流或网络二进制流的能力。Buffer基本概念Buffer 对象的内存分配不是在V8的堆内存中,而是Node在C++层面进行内存申请,可以理解为在内存中单独开辟了一部分空间,但是使用时...
这篇文章主要介绍了Node.js中使用Buffer编码、解码二进制数据详解,Buffer支持ascii、utf8、ucs2、base64等编码格式,需要的朋友可以参考下JavaScript很擅长处理字符串,但是因为它最初的设计是用来处理HTML文档,因此它并不太擅长处理二进制数据。JavaScript没有byte类型,没有结构化的类型(structured types),甚至没有字节数组,只有数字和字符串。(原文:JavaScript doesnt have a byte type — it just has numbers — or st...