学习到的一点Buffer

Posted smart-girl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习到的一点Buffer相关的知识,希望对你有一定的参考价值。

今天学习到的buffer是找到的视频,觉得将的挺有意思的呢
在Node.js中,js文件,可以直接通过node js文件的形式运行的
buffer为什么叫缓冲区呢,因为nodejs作为服务器。1.接受用户发过来的请求,2.给数据返回响应
1.请求全部否是二进制数据,存在buffer中
2.把一些数据发送给用户的时候,会把数据转成二进制数据,也是存在缓冲区
buffer的结构和数组很像,操作的方法也和数组类似,但是数组不能存储图片,不能存储mp3,不能存储二进制的文件
buffer弥补数组不足,Buffer就是专门用来存储二进制数据,使用buffer不需要引入模块,直接使用即可
二进制数据在显示时都是以16进制的形式显示的 buffer中最小是00,最大是ff 0-255
Buffer的大小一旦确定,则不能修改,Buffer实际上是对底层内存的直接操作
buffer中的一个元素,占用内存的一个字节
计算器中一个0或一个1 我们称为1位(bit),

// 8bit == 1byte(字节) 
// 8bit=1byte(字节)
// 1024byte=1kb
// 1024kb=1mb
// 1024mb = 1gb
// 1024gb= 1tb
// buffer中的一个元素,占用内存的一个字节
// 一个汉字3个字节

这下面的是在视频学习中的源码

// var str = ‘hello world ‘
// var buf = Buffer.from(str)
// console.log(buf)
// console.log(buf.length)//占用内存的大小
// console.log(str.length)//字符串的长度
// // 创建指定大小的Buffer
// var buf2 = new Buffer(1024)//1024字节的buffer 
// console.log(‘buf2.length‘,buf2.length)
// Buffer构造函数用法不推荐使用
// 创建一个10个字节的buffer
// alloc 分配
var buf2 = Buffer.alloc(10)
// 通过索引来操作buf中的元素
console.log(buf2)
buf2[0]=88
buf2[1]=255
buf2[2] = 0xaa
buf2[10]= 15

// Buffer的大小一旦确定,则不能修改,Buffer实际上是对底层内存的直接操作
// buf2[3] = 256
buf2[3]=255
// 只要数字在控制台或页面中输出一定是10进制
console.log(buf2)
console.log(‘buf2[3]‘,buf2[2])
console.log(‘buf2[2]‘,buf2[2].toString(16)) //可以转成16进制

// for(var i=0;i<buf2.length;i++){
//     console.log(buf2[i])
// }

// Buffer.allocUnsafe(size)创建一个指定大小的buffer,但是buffer中可能含有敏感数据

var buf3 = Buffer.allocUnsafe(10);
console.log(buf3)
// Buffer.from(str)将一个字符串转换为buffer
// Buffer.alloc(size)创建一个指定大小的Buffer
// Buffer.allocUnsafe(size) 创建一个指定大小的Buffer,但是可能包含敏感数据
// 缓冲区 buffer 
// buf.toString() 将缓冲区的数据转换为字符串
var buf4 = Buffer.from(‘我是一段文本数据‘)
console.log(buf4)
console.log(buf4.toString()) 

技术图片
技术图片
本文看自:尚硅谷node基础













以上是关于学习到的一点Buffer的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg播放RTSP的一点优化

对JSON数据的一点总结

YASnippet - emacs 的代码片段管理工具

客户端技术的一点思考(数据存储用SQLite, XMPP通讯用Gloox, Web交互用LibCurl, 数据打包用Protocol Buffer, socket通讯用boost asio)

20172306第三周学习总结

学习笔记cache/buffer