京东云服务器推荐配置、多种配置选择,满足不同业务需求!

热门推荐

⭐ 稳定入门选择

配置:2核2G/5M

适用场景:个人站点 / 轻量应用

特点:性价比高,稳定可靠

¥19/月
立即购买
流量友好

☁️ 轻量云主机

配置:2核4G 5M

适用场景:小型业务 / 博客 / 测试环境

特点:流量友好,性能均衡

¥149/年
立即购买
高性能

💻 云服务主机

配置:4核16G 8M

适用场景:中小型服务 / 多并发场景

特点:充足内存与带宽,性能强劲

¥750/年
立即购买
新人专享

🎁 新人福利

新人访问 → 点击 → 最新活动

可获取 3000元 礼券

立即领取
JavaScript / NodeJS 教程 / NodeJS 缓冲&URL
Node.js Buffer(缓冲区)
Node.js 示例大全Express.js Router

Node.js Buffer(缓冲区) – 创建,写入和读取

Node.js缓冲区

Node.js缓冲区– Node.js缓冲区是一个类,可帮助处理和使用八位位组流。在处理TCP数据流和文件系统操作时,通常会出现八位字节流。

分配给缓冲区的原始内存在Node.js V8堆内存之外。

在本教程中,我们将学习如何

  • 创建缓冲区

  • 将数据写入缓冲区

  • 从缓冲区读取数据。

Node.js –创建缓冲区

在Node.js中创建缓冲区的方法有很多种。我们将一个一个地研究它们。

指定长度的缓冲区

要创建指定长度的缓冲区,请使用Buffer。allocUnsafe(int)方法。

语法

Buffer.allocUnsafe(bufferLength);
const buf1 = Buffer.allocUnsafe(10);

bufferLength是一个整数,指定要创建的缓冲区的长度。

创建的缓冲区未初始化,这意味着它可以包含垃圾值。您可以使用fill()或write()方法覆盖垃圾值。

指定长度的零填充缓冲区

若要创建指定长度的零填充缓冲区,请使用Buffer.alloc(int)方法。
语法

Buffer.alloc(bufferLength);
const buf1 = Buffer.alloc(10);

 bufferLength是一个整数,指定要创建的缓冲区的长度。缓冲区包含用零填充的所有内存位置。

Buffer.alloc()比 Buffer.allocUnsafe()慢。

指定长度的缓冲区,填充有指定值

若要创建指定长度并填充有指定值的缓冲区,请使用Buffer.alloc(int,int)方法。
语法
Buffer.alloc(bufferLength, value);
 

  const buf1 = Buffer.allocUnsafe(10, 3);

 bufferLength是一个整数,指定要创建的缓冲区的长度。缓冲区包含用value填充的所有内存位置。

Node.js –写入缓冲区

Buffer类有很多方法可以将不同格式的数据写入缓冲区。在本节中,我们将学习编写一个字符串以缓冲。
若要将字符串写入缓冲区,请使用Buffer.write方法。
语法

Buffer.write(string[, offset[, length]][, encoding]);
  const buf1 = Buffer.allocUnsafe(100);
 
  const len = buf1.write('welcomeuser',2,5,'utf8');

从offset开始的字符串,按长度提供的字符数将以指定的编码格式写入缓冲区。

write()方法返回写入缓冲区的字节数。

Node.js – 从缓冲区读取

要从缓冲区读取字节,请使用Buffer.values方法。
语法

Buffer.values();

创建并返回buf1值(字节)的迭代器。在for..of语句中使用Buffer时,将自动调用此函数。

  const buf1 = Buffer.allocUnsafe(11);
 
  const len = buf1.write('welcomeuser');
 
  for(const byt of buf1.values()){
    console.log(byt);
  }

输出结果

$ node read-buffer.js  
119
101
108
99
111
109
101
117
115
101
114

结论:

在本Node.js教程– Node.js缓冲区中,我们学习了如何在Node.js中创建,写入和读取缓冲区。在接下来的教程中,我们将学习一些关于缓冲区的有趣操作。

Node.js 示例大全Express.js Router
上一篇:无