缓冲区处理(二进制数据)
什么是缓冲区
- 缓冲区就是内存中操作数据的容器
- 只是数据容器而已
- 通过缓冲区可以很方便的操作二进制数据
- 而且在大文件操作时必须有缓冲区
为什么要有缓冲区
- JavaScript是比较擅长处理字符串,但是早期的应用场景主要用于处理HTML文档,不会有太大篇幅的数据处理,也不会接触到二进制的数据。
- 而在Node中操作数据、网络通信是没办法完全以字符串的方式操作的
- 所以在Node中引入了一个二进制的缓冲区的实现:Buffer
创建缓冲区
创建长度为4个字节的缓冲区
1let buffer = new Buffer(4)通过指定数组内容的方式创建
1let buffer = new Buffer([00,01])通过指定编码的方式创建
1let buffer = new Buffer("hello","utf8");
Node默认支持的编码
Buffers和JavaScript字符串对象之间转换时需要一个明确的编码方法。下面是字符串的不同编码。
- “ASCII” —7位的ASCII数据,这种编码方式非常快,它会移除最高位内容
- “UTF8” — 多字节编码Unicode字符。大部分网页和文档使用这类编码方式。
- “UTF16LE” — 2个或4个字节,Little Endian(LE)编码Unicode字符。编码范围(U+10000到U+10FFFF)。
- “UCS2” — “UTF16LE”的子集。
- “base64” — Base64字符编码
- “binary” — 仅使用每个字符的头8位将原始的二进制信息进行编码。在需使用Buffer的情况下,应该尽量避免使用这个已经过时的编码方式,这个编码方式将会在未来某个版本中弃用。
- “hex” — 每个字节都采用2进制编码。
文件流
什么是流?
- 文件流、网络流
- 任何数据的最根本
- 表现形式都是二进制的
文件流
- 文件流就是以面向对象的概念对文件数据进行的抽象
- 文件流定义了一些对文件数据的操作方式
以文件流的方式来拷贝文件
|
|
当然我们还可以用pipe方法
|
|
是不是清爽了好多
网络操作
相关模块
- url:用于解析URL格式的模块
- querystring:用于操作类似k1=v1&k2=v2的查询字符串
- http:用于创建http服务器或http客户端
URL解析模块
将一个URL字符串解析为一个URL对象
1url.parse(urlStr[,parseQueryString][,slashesDenoteHost])将一个URL对象格式化为字符串的形式
1url.format(urlObj)用于组合URL成员为完整的URL字符串
1url.resolve(from,to)
查询字符串模块(querystring)
- querystring.escape
- querystring.parse(str[, sep][, eq][, options])
- querystring.stringify(obj[, sep][, eq][, options])
- querystring.unescape
本文结束,感谢阅读。
本文作者:melody0z
本文链接:https://melodyvoid/Node/node-learning-notes-03.html
欢迎转载,转载请注明文本链接