iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Node.js中Buffer有什么用
  • 472
分享到

Node.js中Buffer有什么用

2024-04-02 19:04:59 472人浏览 薄情痞子
摘要

小编给大家分享一下node.js中Buffer有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在node.js中,Buff

小编给大家分享一下node.js中Buffer有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

node.js中,Buffer类是随Node内核一起发布的核心库。

Node.js中Buffer有什么用

javascript 语言自身只有字符串数据类型,没有二进制数据类型。

但在处理像 tcp 流或文件流时,必须使用到二进制数据。因此在 Node.js 中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。

在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理 I/O 操作中移动的数据时,就有可能使用 Buffer 库。

原始数据存储在 Buffer 类的实例中。

一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。

创建 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("bianchengsanmei", "utf-8");

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

写入缓冲区

语法

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

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

参数

参数描述如下:

  • string - 写入缓冲区的字符串。

  • offset - 缓冲区开始写入的索引值,默认为 0 。

  • length - 写入的字节数,默认为 buffer.length

  • encoding - 使用的编码。默认为 ‘utf8’ 。

返回值

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

buf = new Buffer(256);len = buf.write("bi");len = buf.write("bianchengsanmei");
 console.log("写入字节数 : "+  len);

执行以上代码,输出结果为:

$node main.js
写入字节数 : 15

从缓冲区读取数据

语法

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

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

参数

参数描述如下:

  • encoding - 使用的编码。默认为 ‘utf8’ 。

  • start - 指定开始读取的索引位置,默认为 0。

  • end - 结束位置,默认为缓冲区的末尾。

返回值

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

实例

buf = new Buffer(26);for (var i = 0 ; i < 26 ; i++) {
  buf[i] = i + 97;}
 console.log( buf.toString('ascii'));       
 // 输出: abcdefghijklmnopqrstuvwxyzconsole.log( buf.toString('ascii',0,5));   
 // 输出: abcdeconsole.log( buf.toString('utf8',0,5));    
 // 输出: abcdeconsole.log( buf.toString(undefined,0,5)); 
 // 使用 'utf8' 编码, 并输出: abcde

执行以上代码,输出结果为:

$ node main.js
abcdefghijklmnopqrstuvwxyz
abcde
abcde
abcde

将 Buffer 转换为 JSON 对象

语法

将 Node Buffer 转换为 JSON 对象的函数语法格式如下:

buf.toJSON()

返回值

返回 JSON 对象。

实例

var buf = new Buffer('bianchengsanmei');
var json = buf.toJSON(buf);
 console.log(json);

执行以上代码,输出结果为:

{ type: 'Buffer',
  data: [ 119, 119, 119, 46, 119, 51, 99, 115, 99, 104, 111, 111, 108, 46, 99, 110 ] }

缓冲区合并

语法

Node 缓冲区合并的语法如下所示:

Buffer.concat(list[, totalLength])

参数

参数描述如下:

  • list - 用于合并的 Buffer 对象数组列表。

  • totalLength - 指定合并后 Buffer 对象的总长度。

返回值

返回一个多个成员合并的新 Buffer 对象。

实例

var buffer1 = new Buffer('编程三昧 ');
var buffer2 = new Buffer('bi');
var buffer2 = new Buffer('bianchengsanmei');
var buffer3 = Buffer.concat([buffer1,buffer2]);
console.log("buffer3 内容: " + buffer3.toString());

执行以上代码,输出结果为:

buffer3 内容: 编程三昧 bianchengsanmei

缓冲区比较

语法

Node Buffer 比较的函数语法如下所示, 该方法在 Node.js v0.12.2 版本引入:

buf.compare(otherBuffer);

参数

参数描述如下:

  • otherBuffer - 与 buf 对象比较的另外一个 Buffer 对象。

返回值

返回一个数字,表示 bufotherBuffer 之前,之后或相同。

实例

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 + " 与 " + buffer2 + "相同");}else {
   console.log(buffer1 + " 在 " + buffer2 + "之后");}

执行以上代码,输出结果为:

ABC在ABCD之前

拷贝缓冲区

语法

Node 缓冲区拷贝语法如下所示:

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

参数

参数描述如下:

  • targetBuffer - 要拷贝的 Buffer 对象。

  • targetStart - 数字, 可选, 默认: 0

  • sourceStart - 数字, 可选, 默认: 0

  • sourceEnd - 数字, 可选, 默认: buffer.length

返回值

没有返回值。

实例

var buffer1 = new Buffer('ABC');
// 拷贝一个缓冲区var buffer2 = new Buffer(3);
buffer1.copy(buffer2);
console.log("buffer2 content: " + buffer2.toString());

执行以上代码,输出结果为:

buffer2 content: ABC

缓冲区裁剪

Node 缓冲区裁剪语法如下所示:

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

参数

参数描述如下:

  • start - 数字, 可选, 默认: 0

  • end - 数字, 可选, 默认: buffer.length

返回值

返回一个新的缓冲区,它和旧缓冲区指向同一块内存,但是从索引 start 到 end 的位置剪切。

实例

var buffer1 = new Buffer('youj');
// 剪切缓冲区var buffer2 = buffer1.slice(0,2);
console.log("buffer2 content: " + buffer2.toString());

执行以上代码,输出结果为:

buffer2 content: yo

缓冲区长度

语法 Node 缓冲区长度计算语法如下所示:

buf.length;

返回值

返回 Buffer 对象所占据的内存长度。

实例

var buffer = new Buffer('bianchengsanmei');
//  缓冲区长度console.log("buffer length: " + buffer.length);

执行以上代码,输出结果为:

buffer length: 15

以上是“Node.js中Buffer有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网JavaScript频道!

--结束END--

本文标题: Node.js中Buffer有什么用

本文链接: http://www.lsjlt.com/news/88931.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node.js中Buffer有什么用
    小编给大家分享一下Node.js中Buffer有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在Node.js中,Buff...
    99+
    2024-04-02
  • node.js中Buffer对象有什么用
    这篇文章将为大家详细讲解有关node.js中Buffer对象有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Buffer对象,是Node的核心模块,在面试中也是会频...
    99+
    2024-04-02
  • Node.js中Buffer对象怎么用
    小编给大家分享一下Node.js中Buffer对象怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Buffer 是 Node.js 的内置类型,它是用来表示内存中一块区域的,用以保存二...
    99+
    2024-04-02
  • node中的buffer有什么用
    本文小编为大家详细介绍“node中的buffer有什么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“node中的buffer有什么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2024-04-02
  • Ask Hoegh中buffer cache和buffer有什么区别
    这期内容当中小编将会给大家带来有关Ask Hoegh中buffer cache和buffer有什么区别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 ...
    99+
    2024-04-02
  • Node.js的Buffer模块怎么使用
    这篇文章主要介绍“Node.js的Buffer模块怎么使用”,在日常操作中,相信很多人在Node.js的Buffer模块怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • node.js中sass有什么用
    这篇文章主要介绍node.js中sass有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!node sass是一个库,它将Node.js绑定到LibSass【流行样式表预处理器Sass的C版本】,它允许用户以令人...
    99+
    2023-06-14
  • Java NIO中Buffer缓冲区有什么用
    这篇文章主要介绍Java NIO中Buffer缓冲区有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、Buffer 简介Java NIO 中的 Buffer 用于和 NIO 通道进行交互。数据是通道...
    99+
    2023-06-29
  • Node.js中的Buffer对象及创建方式是什么
    Node.js中的Buffer对象及创建方式是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是Buffer?js语言自身只有字符串数据类型,没有二进制数据类型,而处...
    99+
    2023-06-26
  • 怎么理解Node.js中的Buffer模块
    这篇文章主要讲解了“怎么理解Node.js中的Buffer模块”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Node.js中的Buffer模块”吧!...
    99+
    2024-04-02
  • 如何解析Node.js中的Buffer
    这篇文章将为大家详细讲解有关如何解析Node.js中的Buffer,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。JavaScript 语言自身只有字符串数据...
    99+
    2024-04-02
  • Node.js中http模块有什么用
    这篇文章给大家分享的是有关Node.js中http模块有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。http模块网络作为信息传输,接收,共享的虚拟平台,通过它将各个点,面...
    99+
    2024-04-02
  • Node.js中URL 模块有什么用
    这篇文章给大家介绍Node.js中URL 模块有什么用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。URL 模块提供了一些解析 URL 的工具var url&nbs...
    99+
    2024-04-02
  • Node.js中path模块有什么用
    这篇文章主要为大家展示了“Node.js中path模块有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Node.js中path模块有什么用”这篇文章吧。p...
    99+
    2024-04-02
  • java中什么是Buffer
    这篇文章给大家介绍java中什么是Buffer,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序,可重复的;3、...
    99+
    2023-06-14
  • Node.js Buffer中的encoding的示例分析
    这篇文章主要介绍了Node.js Buffer中的encoding的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。计算机最小的单位是...
    99+
    2024-04-02
  • Node.js的模块化机制和Buffer对象是什么
    本篇内容主要讲解“Node.js的模块化机制和Buffer对象是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js的模块化机制和Buffer对象是什么”吧!一、Node.js的模块...
    99+
    2023-06-29
  • Linux中内存buffer和cache有什么区别
    小编给大家分享一下Linux中内存buffer和cache有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!细心的朋友会注意到,当你在linux下频繁存取文...
    99+
    2023-06-13
  • Node.js中的Buffer对象及创建方式
    目录什么是Buffer?注意Buffer中存储的都是二进制数据,但是在显示时以16进制显示Buffer.length表示占用内存的大小Buffer打印数字时会以十进制方式显示Buff...
    99+
    2024-04-02
  • mysql中change buffer的用法是什么
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作