node缓冲区

why?

javascript不擅长处理二进制数据而node需要处理二进制的数据,因此引入一个二进制的缓冲区来实现,它将buffer伪类的javascript API暴露给外界 它以字节为计量单位,可以设置和获取缓冲区的数据

(1)创建缓冲区

var buf = new Buffer(‘*‘,‘*‘);

参数1 缓冲区初始化的内容

参数2 使用什么编码风格创建缓冲区

var buf = new Buffer(‘hello world‘,‘UTF-8‘);

也可以这样初始化缓冲区

var buf = new Buffer(1024); //指定缓冲区长度(在这里我们虽然没有设置缓冲区的值 但是里面存储的是一些随机的值)

(2)获取缓冲区数据和设置数据

var buf = new Buffer(1024);

console.log(buf[100]);//获取100位置的字节

buf[100] = 120;//设置100位置的字节

(3)切分缓冲区和复制缓冲区

var buffer = new Buffer(‘hello world‘);
var smallbuffer = buffer.slice(0,5);
console.log(smallbuffer.toString());//hello

切分缓冲区并没有分配新的内存,所以当父缓冲区修改的时候,子缓冲区也会得到修改  父缓冲区不会被垃圾收集处理

而复制缓冲区则不同

var buffer = new Buffer(‘hello world‘);
var smallbuffer = new Buffer(6);;

buffer.copy(smallbuffer,0,0,5);
console.log(smallbuffer.toString());//hello

(5)缓冲区解码

前面用过smallbuffer.toString()

也可以为它指定字符集

时间: 2024-07-31 05:00:38

node缓冲区的相关文章

【node.js】Buffer(缓冲区)

Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区. 创建 Buffer 类 Node Buffer 类可以通过多种方式来创建. 1.创建长度为 10 字节的 Buffer 实例: var buf = new Buffer(10); 2.通过给定的数组创建 Buffer 实例: var buf = new Buffer([10, 20, 30, 40, 50]); 3.通过一个字符串来创建 Buffer 实例: var buf = new Buffer("

Node.js Buffer(缓冲区)

JavaScript 语言自身只有字符串数据类型,没有二进制数据类型. 但在处理像TCP流或文件流时,必须使用到二进制数据.因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区. 在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库.Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动的数据时,就有可能使用 Buffer 库

Node.js缓存

Node.js Buffer(缓冲区) JavaScript 语言自身只有字符串数据类型,没有二进制数据类型. 但在处理像TCP流或文件流时,必须使用到二进制数据.因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区. 在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库.Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动

Nodejs学习笔记(四)-----Buffer

Node.js Buffer(缓冲区) JavaScript 语言自身只有字符串数据类型,没有二进制数据类型. 但在处理像TCP流或文件流时,必须使用到二进制数据.因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区. 在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库.Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动

nodejs的基础概念

1.node 安装与相关配置. 2.Node.jsREPL(交互式解释器) 类似于控制台,可以输入命令,并接受系统的响应. REPL 的功能: 1.读取:读取用户输入,解析输入的 js 数据结构,并存储在内存中. 2.执行:执行输入的数据结构. 3.打印:输出结果. 4.循环:可以循环1.2.3操作指导ctrl+c两次退出. 开启 Node 终端:node 即可开启. 运算符:+.-.*./,还支持括号改变优先级. 变量定义:使用var来定义变量.常用的输出 API:console.log().

SGI-STL简记(六)-序列容器(deque)

stl_deque.h : deque:一种具有双端插入和删除,可随机访问元素的容器,从首部或后插入或删除在常量时间内完成,从中间则需线性时间内完成: __deque_buf_size:获取队列节点缓冲区大小(工具函数),当数据元素类型字节size小于512时则为512/size,否则为1,(意味着节点容器上限为512字节或者是一个自定义类型元素大小的字节): _Deque_iterator:专用于deque容器的迭代器模板类:重声明常规类型以及迭代器类型和常量迭代器类型,迭代器分类为rando

Node.js API —— Buffer(缓冲区)

// 说明 Node API 版本为 v0.10.31.    中文参考:http://nodeapi.ucdok.com/#/api/,http://blog.sina.com.cn/oleoneoy 本段为博主注解. 目录 ● 缓冲区    ○ Class: Buffer ■ new Buffer(size)       ■ new Buffer(array)       ■ new Buffer(str, [encoding])       ■ Class Method: Buffer.i

笔记:Node.js 的 Buffer 缓冲区

笔记:Node.js 的 Buffer 缓冲区 node.js 6.0 之前创建的 Buffer 对象使用 new Buffer() 构造函数来创建对象实例,但权限很大,可以获得敏感信息,所以建议使用 buffer.from() 接口创建 Buffer 对象. Buffer 实例要以通过显式字符编码与普通的字符串之间进行相互转换,支持 assii,utf8,utf16le,ucs2-utf16le,base64,latin1,binary-latin1,hex. 写稿缓冲区(buf.write)

Node buffer模块缓冲区

//1:字节 byte//1024b = 1kb [千字节]//1024kb = 1mb [兆字节]//1024mb = 1gb [吉字节]//1024gb = 1tb [梯]//1024tb = 1pb //1:创建大小为1024字节缓冲区var buf1 = Buffer.alloc(1024);console.log(buf1);console.log(buf1.length); //2:创建3KB大小缓冲区var buf2 = Buffer.alloc(1024*3);console.l