Node.Buffer

介绍

  • Buffer是一个典型的javascript与c++结合的模块,它将性能相关的部分用c++实现,将非性能相关的部分用javascript实现。
  • 纯 JavaScript 对 Unicode 友好但是无法很好地处理二进制数据。当我们面对类似 TCP 流或文件系统时,是需要处理八位流的,因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
  • 在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动的数据时,就有可能使用 Buffer 库。原始数据存储在 Buffer 类的实例中。一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。

资料

类: Buffer

代码

1.创建

var buff;
//创建长度n的Buffer实例
buff = new Buffer(n);
//创建数组为arr的Buffer实例
buff = new Buffer(arr);
//创建字符串str的Buffer实例
//encoding:"ascii", "utf8", "utf16le", "ucs2", "base64" , "hex"
buff= new Buffer(str,encoding);

2.读写

//写入
var len = buff.write(string[, offset[, length]][, encoding]);
console.log("写入字节:"+len);
//读取
var data = buff.toString([encoding[, start[, end]]]);
console.log(data);

buf.write参数描述如下:
string - 写入缓冲区的字符串。
offset - 缓冲区开始写入的索引值,默认为 0 。
length - 写入的字节数,默认为 buffer.length
encoding - 使用的编码。默认为 ‘utf8’ 。
返回实际写入的大小。如果 buffer 空间不足, 则只会写入部分字符串。

buf.toString参数描述如下:
encoding - 使用的编码。默认为 ‘utf8’ 。
start - 指定开始读取的索引位置,默认为 0。
end - 结束位置,默认为缓冲区的末尾。
返回解码缓冲区数据并使用指定的编码返回字符串。

3.深入

(未完待续...)

总结

时间: 2024-10-10 01:53:56

Node.Buffer的相关文章

Node Buffer/Stream 内存策略分析

在Node 中,Buffer 是一个广泛用到的类,本文将从以下层次来分析其内存策略: User 层面,即Node lib/*.js 或用户自己的Js 文件调用 new Buffer Socekt read/write File read/write User Buffer 在 lib/buffer.js 模块中,有个模块私有变量 pool, 它指向当前的一个8K 的slab : Buffer.poolSize = 8 * 1024; var pool; function allocPool()

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

Node Buffer 利用 slice + indexOf 生成 split 方法

demo let buf = Buffer.from('你你我们我你们'); Buffer.prototype.split = function (seq) { let arr=[]; let len = Buffer.from(seq).length // console.log(len); let index= 0; //开始的长度 // console.log(this.toString()); let target = this.indexOf(seq); // console.log(

【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入门学习(一)

一.安装node.js 方式很多npm,git等,新手建议从官网上直接去下载node的安装包.一键安装. 二.创建一个web服务器. const http = require('http'); http.createServer(function(request,response){ response.writeHead(200,{'Content-Type':'text/plain'}); response.end('Hello World'); }).listen(8888); consol

node 使用笔记

1 安装 buffertools 因为使用mjpeg-proxy的关系,需要编译buffertools中的C++代码文件,怎奈何一直出错. make: Entering directory `/srv/node/SparkCore-WebApp/node_modules/buffertools/build' CXX(target) Release/obj.target/buffertools/buffertools.o ../buffertools.cc: In member function

nodeJS之二进制buffer对象

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

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

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