node.js中的Buffer模块学习笔记
一,前言
说要学node很久了,近两日才开始认真学习,之前看了一点就忙别的去了,还是不能半途而废啊!开始看node的时候觉得很有意思,跟着文档走,就到了Buffer,简单说一说Buffer!
1-1什么是Buffer?
Buffer就是缓冲区,是暂时存放数据输入输出的一个内存,也是node用来与String(字符串数据类型)相互转换的一个全局构造函数。
二,Buffer相关概念
2-1.那Buffer到底是干啥的呢?
对二进制数据进行操作!
2-2.Buffer的特性?
Buffer和字符串是类似的,它也可以像字符串一样用.length属性得到字符长度,也能用[index]的方式制定读取的位置,这样也有点像数组的嘞!
Buffer和字符串的区别:
字符串是只读的,对字符串的操作得到的都是一个新字符串,原来的字符串都是保持不变的
Buffer像c语言数组,可以用下标[ index ]直接操作
2-3Buffer二进制数据转字符串以及字符串转Buffer二进制数据
Buffer二进制数据转字符串:
buf.toString([encoding], [start], [end])
eg:
字符串转Buffer二进制数据:
new Buffer(str, [encoding]),默认UTF-8
buf.write(string, [offset], [length], [encoding])
eg:
2-4.Buffer的转换
Buffer支持的编码类型:ASC-II,UTF-8,Base64,Hex,Binary,UTF-16LE/UCS-2
2-5.Buffer的内存问题
Buffer对象的内存不是在V8的堆内存中,是在node的c++层面实现内存的申请。
node对于内存,使用分配机制:
full:完全分配
partial:部分分配
empty:没有分配
结束语:这是我第一次发博,也是自己学习的笔记,有问题还请各位大佬不吝赐教喔~
参考:https://www.cnblogs.com/hanguidong/p/9409215.html
(这篇更为全面!!!!想更加了解的建议看这个!!!好文必推啊)