NodeJS核心API-Buffer
0.准备知识
0.1计算机只能识别0和1(因为计算机只认识通电和断电两种状态)
0.2所有存储在计算机上的数据都是0和1组成的(数据越大0和1就越多)
0.3计算机中的度量单位
1 B(Byte字节) = 8 bit(位)
// 00000000 就是一个字节
// 111111111 也是一个字节
// 10101010 也是一个字节
// 任意8个 0或1的组合都是一个字节
1 KB = 1024 B
1 MB = 1024KB
1 GB = 1024MB
1.什么是Buffer?
Buffer是NodeJS全局对象上的一个类
是一个专门用于存储字节数据的类
NodeJS提供了操作计算机底层API
而计算机底层只能识别0和1,
所以就提供了一个专门用于存储字节数据的类
2.如何创建一个Buffer对象
2.1创建一个指定大小的Buffer
Buffer.alloc(size[, fill[, encoding]])
2.2根据数组/字符串创建一个Buffer对象
Buffer.from(string[, encoding])
3.Buffer对象本质
本质就是一个数组
![8dd94be22c3e14c431bd81a50d645fe6.png](https://i-blog.csdnimg.cn/blog_migrate/eb294240493a1a61e81440237d6313c4.jpeg)
NodeJS核心API-Buffer实例方法
1.将二进制数据转换成字符串
返回: 转换后的字符串数据
buf.toString();
2.往Buffer中写入数据
string 要写入 buf 的字符串
offset 开始写入 string 之前要跳过的字节数。默认值: 0
length 要写入的字节数。默认值: buf.length - offset。
encoding string 的字符编码。默认值: 'utf8'。
返回: 已写入的字节数。
buf.write(string[, offset[, length]][, encoding])
3.从指定位置截取新Buffer
start 新 Buffer 开始的位置。默认值: 0。
end 新 Buffer 结束的位置(不包含)
buf.slice([start[, end]])
![49ec94971af57ea97d09ff1d41b71dca.png](https://i-blog.csdnimg.cn/blog_migrate/bfe9c461dbc47a7d4dbfa9b112e9027a.jpeg)
NodeJS核心API-Buffer静态方法
1.检查是否支持某种编码格式
Buffer.isEncoding(encoding)
2.检查是否是Buffer类型对象
Buffer.isBuffer(obj)
3.获取Buffer实际字节长度
Buffer.byteLength(string[, encoding])
注意点: 一个汉字占用三个字节
4.合并Buffer中的数据
Buffer.concat(list[, totalLength])
![2f1e0f752e7fa854d013f272ae8ef3b1.png](https://i-blog.csdnimg.cn/blog_migrate/80bb28368d4cd5646fe783284224b018.jpeg)
NodeJS核心API-path常用方法
1.路径模块(path)
封装了各种路径相关的操作
和Buffer一样
NodeJS中的路径也是一个特殊的模块
不同的是Buffer模块已经添加到Global上了
所以不需要手动导入
而Path模块没有添加到Global上
所以使用时需要手动导入
let path = require("path");
2.获取路径的最后一部分
path.basename(path[, ext])
3.获取路径,也就是除了最后一个部分以外的内容
path.dirname(path)
4.获取扩展名称
path.extname(path)
获取路径中最后一个组成部分的扩展名
5.判断是否是绝对路径
path.isAbsolute(path)
在Linux操作系统中/开头就是绝对路径
在Windows操作系统中盘符开头就是绝对路径
6.获取当前操作系统路径分隔符
path.sep用于获取当前操作系统中路径的分隔符的
在Linux操作系统中路径的分隔符是左斜杠 /
在Windows操作系统中路径的分隔符是右斜杠
7.获取当前路径环境变量分隔符
path.delimiter (windows中使用; linux中使用:)
![6596041888de76e86f24732e6c8c9961.png](https://i-blog.csdnimg.cn/blog_migrate/a61f89aa0c149ed5b01c9790e4760145.jpeg)
NodeJS核心API-path其它方法
1.路径的格式化处理
用于将路径转换成对象
path.parse() string->obj
用于将对象转换成路径
path.format() obj->string
2.拼接路径
path.join([...paths])
注意点:
如果参数中没有添加/,
那么该方法会自动添加
如果参数中有../,
那么会自动根据前面的参数生成的路径
去到上一级路径
3.规范化路径,去掉多余的斜杠
path.normalize(path)
4.计算相对路径
path.relative(from, to)
5.解析路径
path.resolve([...paths])
注意点: 如果后面的参数是绝对路径, 那么前面的参数就会被忽略
![299db5ecb957424080f3042ee3a23519.png](https://i-blog.csdnimg.cn/blog_migrate/80cbedb8f26527055a0daa7f96e99ee9.jpeg)