node Buffer缓存区常见操作示例

本文实例讲述了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(26);
for(var i=0;i<26;i++;){
buf[i]=i+97;
}
console.log(buf.toString('ascill'));
console.log(buf.toString('ascill',0,5))
console.log(buf.toString('utf-8',0,5))
console.log(buf.toString('undefined',0,5))

转为json

buf.toJSON()
var buf=new buffer('www.baidu.com');
var json=buf.toJSON('buf')
console.log(json)

缓存合并

buffer.concat(list[,totalLength]);
var buffer1=new Buffer('百度搜索');
var buffer2=new Buffer('www.baidu.com');
var buffer3=Buffer.concat([buffer1,buffer2]);
console.log("buffer3内容"+buffer3.toString())

缓存区比较

buf.compare(otherBuffer)
var buffer1=new Buffer('ABC');
var buffer2=new Buffer('ABCD');
var result=buffer1.compare(buffer2);
if(result<0){
console.log(buffer1+"在"+buffer2+"之前")
}else if(result==0){
console.log(buffer1+"等于"+buffer)
}else{
console.log(buffer1+"在"+buffer2+"之后")
}

拷贝缓存区

buf.copy(targetBuffer[,targetStart[,sourceStart[,sourcEnd]]])
var buffer1=new Buffer('ABC');
var buffer2=new Buffer(3);
buffer1.copy(Buffer2);
console.log("buffer2 content:"+buffer2.toString())

缓存区裁剪

buf.slice([start[,end]])
var buffer1=new Buffer('baidu')
var buffer2=buffer1.slice(0,2);
console.log("buffer2 content:"+buffer2.toString());
buffer2 content:ba

缓存区长度

buf.length
var buffer=new Buffer("www.baidu.com");
console.log("buffer length:"+buffer.length)
buffer length:13

希望本文所述对大家node.js程序设计有所帮助。

(0)

相关推荐

  • node.js中的buffer.copy方法使用说明

    方法说明: 进行不同buffer之间的复制替换操作. 从源buffer复制数据 并替换到目标buffer的指定位置. 语法: 复制代码 代码如下: buffer.copy(targetBuffer, [targetStart], [sourceStart], [sourceEnd]) 接收参数: targetBuffer        目标buffer,执行复制替换的buffer targetStart           目标buffer数据替换的起始位置 sourceStart       

  • 深入理解Node中的buffer模块

    在Node.ES2015出现之前,前端工程师只需要进行一些简单的字符串或DOM操作就可以满足业务需要,所以对二进制数据是比较陌生.node出现以后,前端面对的技术场景发生了变化,可以深入到网络传输.文件操作.图片处理等领域,而这些操作都与二进制数据紧密相关. Node里面的buffer,是一个二进制数据容器,数据结构类似与数组,数组里面的方法在buffer都存在(slice操作的结果不一样).下面就从源码(v6.0版本)层面分析,揭开buffer操作的面纱. 1. buffer的基本使用 在No

  • Node.js Buffer用法解读

    Buffer是什么? Buffer作为存在于全局对象上,无需引入模块即可使用,你绝对不可以忽略它. 可以理解Buffer是在内存中开辟的一片区域,用于存放二进制数据.Buffer所开辟的是堆外内存. Buffer的应用场景有哪些? 流 怎么理解流呢?流是数据的集合(与数据.字符串类似),但是流的数据不能一次性获取到,数据也不会全部load到内存中,因此流非常适合大数据处理以及断断续续返回chunk的外部源.流的生产者与消费者之间的速度通常是不一致的,因此需要buffer来暂存一些数据.buffe

  • Node.js实用代码段之获取Buffer对象字节长度

    我们知道Node.js框架下的Buffer对象能够对二进制数据提供很好的支持,那么获取一个Buffer对象真实的字节长度则是必须要用到的功能了.Node.js框架为开发人员提供了一个Buffer.byteLength()方法,下面我们借助一个官方文档提供的例程向读者演示一下该方法的使用过程. 本例ch04.buffer-byteLength.js主要代码如下: /** * ch04.buffer-byteLength.js */ console.info("------Buffer.byteLe

  • node.js中的buffer.toJSON方法使用说明

    方法说明: 将buffer对象 转换成json格式. 语法: 复制代码 代码如下: buffer.toJSON() 接收参数: 无 例子: 复制代码 代码如下: var buf = new Buffer('test'); var json = JSON.stringify(buf); console.log(json); // '{"type":"Buffer","data":[116,101,115,116]}' var copy = JSON

  • 详解nodeJS之二进制buffer对象

    前面的话 在ES6引入TypedArray之前,JavaScript语言没有读取或操作二进制数据流的机制.Buffer类被引入作为Nodejs的API的一部分,使其可以在TCP流和文件系统操作等场景中处理二进制数据流.现在TypedArray已经被添加进ES6中,Buffer类以一种更优与更适合Node.js用例的方式实现了Uint8Array.本文将详细介绍buffer对象 概述 由于应用场景不同,在Node中,应用需要处理网络协议.操作数据库.处理图片.接收上传文件等,在网络流和文件的操作中

  • NodeJS中Buffer模块详解

    一,开篇分析 所谓缓冲区Buffer,就是 "临时存贮区" 的意思,是暂时存放输入输出数据的一段内存. JS语言自身只有字符串数据类型,没有二进制数据类型,因此NodeJS提供了一个与String对等的全局构造函数Buffer来提供对二进制数据的操作.除了可以读取文件得到Buffer的实例外,还能够直接构造,例如: 复制代码 代码如下: var buffer = new Buffer([ 0x68, 0x65, 0x6c, 0x6c, 0x6f ]) ; Buffer与字符串类似,除了

  • node.js中的buffer.slice方法使用说明

    方法说明: 返回一个新的buffer对象,这个新buffer和老buffer公用一个内存. 但是被start和end索引偏移缩减了.(比如,一个buffer里有1到10个字节,我们只想要4-8个字节,就可以用这个函数buf.slice(4,8),因为他们共用一个内存,所以不会消耗内存,) 因为共用内存,所以修改新的buffer后,老buffer的内容同样也会被修改. 语法: 复制代码 代码如下: buffer.slice([start], [end]) 接收参数: start      开始位置

  • node.js中的buffer.Buffer.byteLength方法使用说明

    方法说明: 获取字符串的字节长度. 这个函数与 String.prototype.length 不同点在于,后者返回的是字符串的字符数. 语法: 复制代码 代码如下: Buffer.byteLength(string, [encoding]) 接收参数: string                              字符创 encoding                        字符串编码,默认为 'utf8′ 例子: 复制代码 代码如下: str = '\u00bd + \u

  • node.js中的buffer.toString方法使用说明

    方法说明: 将buffer对象转换成指定的字符编码的字符串. 语法: 复制代码 代码如下: buffer.toString([encoding], [start], [end]) 接收参数: encoding       转换成字符串后的字符编码,默认为 'utf8′ start                buffer 转换的起始位置,默认为 0 end                 buffer 转换的结束位置,默认为buffer长度 例子: 复制代码 代码如下: var b = new

  • node.js中的buffer.write方法使用说明

    方法说明: 将string使用指定的encoding写入到buffer的offset处. 返回写入了多少个八进制字节. 如果Buffer没有足够的空间来适应整个string,那么将只有string的部分被写入. 语法: 复制代码 代码如下: buffer.write(string, [offset], [length], [encoding]) 接收参数: string                  String,被写入buffer的数据. offet                   n

随机推荐