当前位置: 首页 > news >正文

怎么制作免费网站教程视频谁能给我个网址

怎么制作免费网站教程视频,谁能给我个网址,做app动态界面的网站有哪些,开发一款小程序软件需要多少钱Buffer数据类型 文章目录 Buffer数据类型什么是Buffer数据类型Buffer 的特点 创建Buffer实例Buffer用于编码转换将Buffer 实例转换为JSON 对象Buffer实例基本操作1. 写入Buffer实例:2. 从Buffer实例读取数据:3. Buffer实例合并: 4. Buffer实例…

Buffer数据类型

文章目录

    • Buffer数据类型
      • 什么是Buffer数据类型
      • Buffer 的特点
    • 创建Buffer实例
    • Buffer用于编码转换
    • 将Buffer 实例转换为JSON 对象
    • Buffer实例基本操作
      • 1. 写入Buffer实例:
      • 2. 从Buffer实例读取数据:
        • 3. Buffer实例合并:
      • 4. Buffer实例复制:
      • 5. Buffer实例切片:

什么是Buffer数据类型

Buffer 是 Node.js 中用于处理二进制数据的数据类型,可以将其视为一种缓冲区或缓冲器。它类似于整数数组,但是在创建时分配了固定大小的原始内存,并且大小无法更改。

Buffer 的特点

Buffer 的特点包括:

  1. 固定大小:Buffer 实例在创建时需要指定大小,且无法更改。这使得 Buffer 在处理二进制数据时更加高效。
  2. 原始内存分配:Buffer 实例在内存中分配了原始的二进制数据存储空间,可以直接对其进行读取和写入操作。
  3. 全局作用域:Buffer 类位于全局作用域中,因此无需使用 require() 加载即可直接使用。

通过使用 Buffer,Node.js 可以处理 TCP 流、文件系统操作以及其他需要与二进制字节流进行交互的场景。Buffer 提供了一系列方法和属性,用于读取、写入和操作二进制数据,使得在 Node.js 中处理二进制数据变得更加方便和高效。

总结起来,Buffer 是 Node.js 中用于处理二进制数据的数据类型,具有固定大小、原始内存分配和全局作用域的特点。它是处理 TCP 流、文件系统操作等二进制数据交互的重要工具。

创建Buffer实例

在 Node.js 6.0.0 之前的版本中,Buffer 实例是使用Buffer 构造函数创建的。之后的版本中,Buffer 实例创建改为

  • Buffer.from()
  • Buffer.alloc()
  • Buffer.allocUnsafe()
// 创建一个包含数组[0x1, 0x2, 0x3]的Buffer实例
const buf1 = Buffer.from([1, 2, 3]);
// 创建一个包含 UTF-8 字节 [0x74, 0xc3, 0xa9, 0x73, 0x74] 的 Buffer实例
const buf2 = Buffer.from('tést');
// 创建一个包含 Latin-1(说明见2.6.2节)字节 [0x74, 0xe9, 0x73, 0x74] 的 Buffer实例
const buf3 = Buffer.from('tést', 'latin1');
// 创建一个长度为 10、且用零填充的 Buffer实例
const buf4 = Buffer.alloc(10);
// 创建一个长度为 10、且用 0x1 填充的 Buffer实例
const buf5 = Buffer.alloc(10, 1);
/* 创建一个长度为 10、且未初始化的 Buffer实例。这个方法比调用 Buffer.alloc()更快,
但返回的 Buffer 实例可能包含旧数据,因此需要使用 fill() 或 write() 重写。*/
const buf6 = Buffer.allocUnsafe(10);

Buffer用于编码转换

这里先介绍一下字符集(Charset)和字符编码(Encoding)这两个概念。文字内容在计算机中的存储格式实际是二进制的字节流,这两者之间的转换需要一个统一的标准,就是各种字符集标准,其规定了每个字符与二进制数字存储方式(编码》的转换关系。字符集只是一个规则集合的名称,而字符集要正确编码转码一个字符还需要字库表、编码字符集和字符编码的支持。

字库表决定整个字符集能够表示的字符的范围。编码字符集则用一个编码值来表示一个字符在字库中的位置。字符编码确定编码字符集和实际存储数值之间的转换关系。例如,Unicode 是编码字符集,而UTF-8、UTF-16 就是字符编码,即符合 Unicode 规则的字库的一种实现形式。

Buffer 实例一般用于表示编码字符的序列,如UTF-8、UCS2、Base64 或十六进制编码的数据在文件操作和网络操作中,如果没有显式声明编码格式,返回数据的默认类型为 Buffer。例如,读取文件时不指定编码格式,得到的结果就是 Buffer 字符串。通过使用显式的字符编码,就可以将 Buffer 实例与普通的JavaScript 字符串进行相互转换。

Node.is 目前支持的字符编码如下。

  • ascii: 仅适用于7位ASCI 数据。此编码速度很快,如果设置这种编码,将从数据中删除高位。
  • utf8:多字节编码的 Unicode 字符。许多网页和文档都使用这种编码格式。
  • utf16le: 2 个或4 个字节,小字节序编码的 Unicode 字符。支持代理对(U+10000 至U+10FFFF)。ucs2 是它的别名
  • base64: Base6 编码。
  • latin1:一种将 Buffer编码成单字节编码字符串的方法。binary 是latin1的别名
  • hex: 将每个字节编码成两个十六进制的字符。

在创建Buffer实例时指定存入字符串的字符编码const buf = Buffer.from('hello world', 'ascii');

将已创建的Buffer实例转换成字符串的语法 : buf.toString([encoding[, start[, end]]])
toString方法根据参数encoding指定的字符编码将 buf对象解码成字符串。其中参数encoding 指定所用的字符编码,默认值为ut8:stat 指定开始解码的字节偏移量,默认值为0;end 指定结束解码的字节偏移量,默认值为 buf.ength。返回的结果是字符串。下面是一个简单的例子:

const buf = Buffer.from('tést');
console.log(buf.toString('hex'));// 输出结果: 74c3a97374
console.log(buf.toString('utf8', 0, 3));//输出结果:té

将Buffer 实例转换为JSON 对象

可以使用buftoJSON0方法将 Buffer 实例转换为JSON 对象,这种用法适用于将二进制数据转换为JSON 格式。当一个Buffer 实例字符串化时,JSON.stringifv0会隐式地调用tOJSON0方法,该方法返回一个JSON对象。下面的例子示范如何将 Buffer 实例转换为JSON对象。

【示例:Buffer 对象转JSON 对象(buf to_ison.js)】

const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
const json = JSON.stringify(buf);
console.log(json);  // 输出:{"type":"Buffer","data":[1,2,3,4,5]}
const copy = JSON.parse(json, (key, value) => {return value && value.type === 'Buffer' ?Buffer.from(value.data) :value;
});
console.log(copy);  // 输出: <Buffer 01 02 03 04 05>

Buffer实例基本操作

Buffer是Node.js中用于处理二进制数据的类。以下是Buffer的常用操作:

  • 写入 Buffer 实例
  • 从 Buffer 实例读取数据
  • Buffer 实例合并
  • Buffer 实例复制
  • Buffer 实例切片

1. 写入Buffer实例:

可以使用Buffer.from()Buffer.alloc()方法创建一个Buffer实例,并使用write()方法向Buffer中写入数据。

const buf = Buffer.alloc(5); // 创建一个长度为5的Buffer实例
buf.write('hello'); // 向Buffer实例写入数据

2. 从Buffer实例读取数据:

可以使用toString()方法将Buffer实例中的数据转换为字符串。

const buf = Buffer.from('hello'); // 创建一个包含字符串的Buffer实例
const str = buf.toString(); // 将Buffer实例中的数据转换为字符串
console.log(str); // 输出: hello
3. Buffer实例合并:

可以使用Buffer.concat()方法将多个Buffer实例合并成一个。

const buf1 = Buffer.from('hello');
const buf2 = Buffer.from('world');
const mergedBuf = Buffer.concat([buf1, buf2]); // 合并两个Buffer实例
console.log(mergedBuf.toString()); // 输出: helloworld

4. Buffer实例复制:

可以使用copy()方法将一个Buffer实例的数据复制到另一个Buffer实例中。

const buf1 = Buffer.from('hello');
const buf2 = Buffer.alloc(5);
buf1.copy(buf2); // 将buf1的数据复制到buf2中
console.log(buf2.toString()); // 输出: hello

5. Buffer实例切片:

可以使用slice()方法从一个Buffer实例中创建一个新的Buffer实例,包含原始Buffer实例的指定部分数据。

const buf = Buffer.from('hello world');
const slicedBuf = buf.slice(6, 11); // 从第6个字节到第11个字节创建一个新的Buffer实例
console.log(slicedBuf.toString()); // 输出: world

这些是Buffer的一些常用操作,可以帮助你处理二进制数据。在实际开发中,还有更多的Buffer操作可以探索和应用。

http://www.tj-hxxt.cn/news/52316.html

相关文章:

  • 有免费查企业的软件吗优化大师安卓版
  • 网站怎么做域名实名认证草根站长工具
  • 全球速卖通官网入口网站优化推广费用
  • 网站建设犀牛云怎样弄一个自己的平台
  • 商标logo免费设计在线生成seo技术建站
  • 网站地图好处seo排名计费系统
  • 做坑人网站二维码怎样免费推广自己的网站
  • 深圳大公司西安关键词seo
  • 山东个人网站备案域名收录提交入口
  • 最好的微网站建设价格seo是一种利用搜索引擎
  • 深圳专业网站建设要求网站seo方案撰写
  • 我要设计网关键词优化推广公司排名
  • 个体工商户备案网站备案网站seo收录
  • 贵阳网站备案网络营销有哪些就业岗位
  • 打开网站是iis7seo推广案例
  • 吉安网站建设兼职郑州网站建设外包
  • 网站默认数据库地址搜索引擎营销特点
  • 网站的流量怎么赚钱域名站长工具
  • 哪些网站是python做的2345网址导航是什么浏览器
  • ps怎么排版规划设计网站免费seo优化
  • 网站模拟课堂模式应该怎么做天津seo管理平台
  • 郑州橱柜网站建设深圳seo关键词优化外包公司
  • 镇江网站建设远航网络seo对网络推广的作用是
  • 做网站发布信息厦门seo蜘蛛屯
  • 文案类的网站友情链接获取的途径有哪些
  • ps做图软件怎么下载网站优化20条措施
  • 苏州优化网站建设产品如何做市场推广
  • 网站怎么做优化排名靠前东莞网站优化公司
  • php如何做视频网站北京优化网站推广
  • 辽宁省建设执业继续教育协会网站网站优化方式有哪些