在node中,在处理网络协议、操作数据库、处理图片、接收上传文件、在处理网络流和文件的操作中,还需要处理大量二进制数据,js原有的字符串不足以满足这些需求,于是Buffer应运而生;
Buffer对象
Buffer对象类似于数组,它的元素为16进制的两位数,即0到255的数值。
- 不同编码的字符串占有元素的个数不一样,中文字在UTF-8下占用三个元素,字母和半角标符号占一个元素;
- 不同的编码规则(base64、UTF-8),相同的字符占有的元素个数也不一样;
例如:
- Buffer也可以通过length属性得到长度,也可以通过下标访问元素,在构造对象时也很相似:
var bufffer = new Buffer(10)
console.log(buffer.length); // 10
Buffer实例方法
var buf = new Buffer('hello jinghong');
buf.length; // 14
buf.write('Hi jinghong');//11
buf.toString(); //'Hi jinghong'
buf.length; //14这个长度是初始化Buffer时候指定的
buf.write(' jinghongjinghongjinghong', 2, 16); //12
buf.toString(); // 'Hi jinghongji'
var buf = new Buffer('hello world')
buf.length;//11
var buf2 = new Buffer(5);
buf.copy(buf2);//5
buf2.toString();//hello
buf.copy(buf2, 0, 6, 11)//5, buf2是从buf的第6位开始复制到第11位(不包含第11位);buf2是从第1位开始写入;
buf2.toString(); // world

本文详细介绍了Node.js中Buffer对象的基本概念及其使用方法。包括Buffer对象如何处理二进制数据、不同编码方式下字符串的存储形式、Buffer对象的创建及常用方法如length属性、write方法、toString方法和copy方法等。
1191

被折叠的 条评论
为什么被折叠?



