【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("www.runoob.com", "utf-8");

utf-8 是默认的编码方式,此外它同样支持以下编码:"ascii", "utf8", "utf16le", "ucs2", "base64" 和 "hex"。

写入缓冲区

写入 Node 缓冲区的语法如下所示:

buf.write(string[, offset[, length]][, encoding])

返回实际写入的大小。如果 buffer 空间不足, 则只会写入部分字符串。

buf = new Buffer(256);
len = buf.write("www.runoob.com");

console.log("写入字节数 : "+  len);

从缓冲区读取数据

读取 Node 缓冲区数据的语法如下所示:

buf.toString([encoding[, start[, end]]])

解码缓冲区数据并使用指定的编码返回字符串。

buf = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
  buf[i] = i + 97;
}

console.log( buf.toString(‘ascii‘));       // 输出: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString(‘ascii‘,0,5));   // 输出: abcde
console.log( buf.toString(‘utf8‘,0,5));    // 输出: abcde
console.log( buf.toString(undefined,0,5)); // 使用 ‘utf8‘ 编码, 并输出: abcde

将 Buffer 转换为 JSON 对象

buf.toJSON()

缓冲区合并

Buffer.concat(list[, totalLength])

缓冲区比较

buf.compare(otherBuffer);

拷贝缓冲区

buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])

缓冲区裁剪

buf.slice([start[, end]])

缓冲区长度

buf.length;
时间: 2024-12-17 02:02:27

【node.js】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]Buffer

摘要 在js中是没有二进制类型的,但在处理tcp或者文件流时,必须使用到二进制数据,因此Node.js定义了一个Buffer类型,该类型用来创建一个专门存储二进制数据的缓存区.在Node.js中,Buffer类是随Node内核一起发布的核心库.Buffer库为Node.js带来了一种存储原始数据的办法,可以让Node.js处理二进制数据,每当需要在Node.js中处理I/O操作中移动的数据时,就有可能使用Buffer库.原始数据存储在Buffer类的实例中.一个Buffer类似于证书数组,但她对

Node.js缓存

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

[Node.js] Node.js Buffers

>> node >>fs.readFile('finnish.txt', function(err,data){ console.log(data); }); // Output string is not what we want >>fs.readFile('finnish.txt', function(err, data){ console.log(data.toString()); }); // Ouptu is ok /* Encoding */ >&g

Node.js 教程

Node.js 教程nodejs简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好.谁适合阅读本教程?如果你是一个前端程序员,你不懂得像PHP.Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择.No

进击Node.js基础(二)

一.一个牛逼闪闪的知识点Promise npm install bluebird 二.牛逼闪闪的Promise只需三点1.Promise是JS针对异步操作场景的解决方案 针对异步的场景,业界有很多解决方案,如回调.事件机制 Promise是一个对象,同时它也一种规范,针对异步操作约定了统一的接口,表示一个异步操作的最终结果以同步的方式来写代码,执行的操作是异步的,但是又保证程序的执行顺序是同步的. 原本是社区的一个规范的构想,被加入到ES6的语言标准里面,比如Chrom,Firefox浏览器已对

纯干货 | Node.js快速入门指南与实践

前言 Node.js知识点虽然不多,但是想要通篇的看完并快速上手还是需要一些时间的.而这篇文章主要总结工作中Node.js一些常用模块API的用法以及优秀的第三方模块,帮助你快速的上手.Good Luck?????? 惯例 Node.js是基于Chrome V8引擎的Javascript运行环境. console - 控制台 1.控制台打印信息 console.log('日志信息'); console.warn('警告信息'); console.debug('调试信息'); console.er

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)