node 基础 api 之 buffer

本文深入解析Node.js中的Buffer对象,探讨其在处理二进制数据流中的应用,包括Buffer的创建、常用API介绍及实例演示,同时讲解如何解决中文乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

buffer 是用来处理二进制数据流的

挂在 global对象上,不是在内置模块中;可以直接拿来用

实例类似于整数数组

使用 C++代码在v8 堆外 分配物理内存;

buffer的api :

   1, const buf1 = Buffer.alloc(10);

    开辟一片内存,长度为10,且默认用0 填充;

   2,const buf2= Buffer.alloc(10,1);

开辟一片内存,长度为10,用0x1 填充;

const buf3 = Buffer.allocUnsafe(10);

allocUnsafe 没有alloc 安全 但是比alloc快; 有可能会有老得数据 在里面; 需要 使用fill()或者write()重写,其实没必要使用;

Buffer.from() 的话 会存储一个某种格式的 编码 ,第一个参数是 要存储的目标; 第二个参数是格式;  

 

 

实例化前:

不用实例化就自带的 属性和方法 ,叫做静态的 属性和方法(类方法);

buffer 还有这几种属性和方法:

   Buffer. byteLength();  返回 目标的 占用字节 长度;

   Buffer. isBuffer.();  返回布尔值 ;判断目标是不是buffer对象

   Buffer. Concat();  返回几个buffer实例数组的合并以后的buffer对象;

实例化后:

实例化以后的Buffer的拥有的属性;


const buff=Buffer.from("test");

//buff 开辟空间的字节长度
console.log(buff.length);
//buff的字符串化方法 也可以如参数 决定编码格式 默认utf-8  可以改成 base64
console.log(buff.toString(w));
//buff的 填充方法  一个参数 是 要填入的值 第二个和第三参数 起始和终止index值
console.log(buff.fill());
//两个buff 的内容是否一样,buff1.equas(buff2);buff1和buff2 对比 返回布尔值;
console.log(buff.equas());
//和数组里的 indexOf方法一直 ,找到返回所在index,找不到返回-1;
console.log(buff.indexOf());
//buff.copy(buff1,1,2,3) 把buff的某个片段拷贝到 buff1里去;;
//第二个参数是 buff1拷贝的起始位置; 第三个参数 是要拷贝的片段的buff 。index开始位置  
// 第4个参数 是要拷贝的片段的buff 。index结束 位置  
console.log(buff.copy());

修复中文乱码的问题; 

中文乱码就是字节数 不够。字节 然后拼接 输出 导致的乱码 

这边可以采用 内置的包  string_decode

const StringDecode = require('string-decode');

const decode=new StringDecode('utf-8') ;

const b="我是脚本"

console.log(decode.write(b) );

 

这样 就不会出现乱码的情况了,修正 拼字节数错误的问题

 

  

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值