nodejs笔记1-Buffer

// 创建一个长度为 10、且用 0 填充的 Buffer。
const buf1 = Buffer.alloc(10);

// 创建一个长度为 10、且用 0x1 填充的 Buffer。 
const buf2 = Buffer.alloc(10,1);

// 创建一个长度为 10、且未初始化的 Buffer。
// 这个方法比调用 Buffer.alloc() 更快,
// 但返回的 Buffer 实例可能包含旧数据,
// 因此需要使用 fill() 或 write() 重写。
const buf3 = Buffer.allocUnsafe(10);

// 创建一个包含 [0x1, 0x2, 0x3] 的 Buffer。
const buf4 = Buffer.from([1, 2, 3]);

// 创建一个包含 UTF-8 字节 [0x74, 0xc3, 0xa9, 0x73, 0x74] 的 Buffer。
const buf5 = Buffer.from('tést');

// 创建一个包含 Latin-1 字节 [0x74, 0xe9, 0x73, 0x74] 的 Buffer。
const buf6 = Buffer.from('tést', 'latin1');


//.............写入缓冲区
//写如Node缓冲区的语法如下:
//buf.write(string [,offset[,length]][,encoding]);
//string -写入缓冲区的字符串
//offset -写入的字节数,默认为buffer.length
//encoding -使用的编码,默认为utf8
// --该函数返回值为实际写入大大小

buf =Buffer.alloc(256);
len=buf.write('www.runoob.com');
console.log("写入字节数:"+len);

//..............从缓冲区读取数据
// buf.toString([encoding[,start[,end]]]);
//encoding - 使用的编码,默认为utf8
//start - 指定开始读取索引的位置
//end - 结束的位置,默认为缓冲区的末尾
//-----返回值———— 解码缓冲区数据并使用指定的编码返回字符串

buf =Buffer.alloc(26);
for(var i=0;i<26;i++){
    buf[i]=i+97;
}
console.log(buf.toString('ascii'));
console.log(buf.toString('ascii',0,5));
console.log(buf.toString('utf8',0,5));
console.log(buf.toString(undefined,0,5));

//缓冲区合并
//Buffer.concat(list[,totalLength]);
//list - 用于合并Buffer对象的数组
//totalLength - 指定合并后Buffer对象的总长度
//...返回值,多个成员合并后的新对象
var buffer1=Buffer.from('菜鸟教程');
var buffer2=Buffer.from('www.runoob.com');
var buffer3=Buffer.concat([buffer1,buffer2]);
console.log('buffer3内容:'+buffer3.toString());


 //.....缓冲区裁剪
 //buf.slice([start[,end]]);
 //start - 数字,可选,默认为0
 //end - 数字,可选,默认:buffer.length
 //返回值,返回一个新的缓冲区,它和旧的缓冲区指向同一块内存。
var buffer1=Buffer.from('runoob');
var buffer2=buffer1.slice(0,2);
console.log('buffer2 content:'+buffer2.toString());


//....缓冲区长度
//buf.length

//方法参考
//Node.js Buffer 常用方法:
......


//将Buffer转化为JSON对象
//buf.toJSON();
//当字符串化一个Buffer实例时,JSON.stringify()会隐式的调用toJSON()方法
const buf=Buffer.from([0x1,0x2,0x3,0x4]);
const json=JSON.stringify(buf);
console.log(json);

cosnt copy=JSON.parse(json,(key,value)=>{
    return value && value.type === 'Buffer' ? Buffer.from(value.data) : value;
});

console.log(copy);

猜你喜欢

转载自blog.csdn.net/qq_28120673/article/details/82693908