nodeJS学习笔记

130 阅读2分钟

Buffer(缓冲器)

概念

  1. 类似数组的对象,本质是一段内存空间,专门处理二进制数据
  2. 大小固定无法调整,性能较好,可以直接对计算机内存进行操作
  3. 每个元素的大小是1字节
  4. 存储的是二进制,打印时会显示16进制方便查看

创建

  1. alloc、allocUnsafe、from
// alloc(分配) 
// 创建一个十字节的空间--会清空分配的内存空间 
let buf = Buffer.alloc(10) 
// allocUnsafe UNsafe:不安全的 
// 创建一个十字节的空间--不会清理分配的内存空间,会存在脏数据,但是速度快 
let buf = Buffer.allocUnsafe(10) 
// from 把数组或字符串转换成Buffer二进制数据 字母按照ASCII码表转移 数组会把数组的每一项转码存储 
let buf = Buffer.from('hello')

转换

  1. 实例的toString
    1. 将buffer转换为字符串
    2. 实例.toString()
  2. 实例上某一份内存toString
// 将当前内存的进制做转换 
let buf = Buffer.from('hello') 
// buf[0].toString(2) // 把当前存储转换为二进制 
// 还可以修改内存 
buf[0] = 65

溢出

  1. 一字节二进制存储的最大十进制数字是255,超过之后就会溢出、高位舍弃,赋值时需注意

image.png

FS模块

写入

  1. fs相对路径参照物是命令行的工作目录,在代码中写相对路径时要慎重
    1. 可以使用__dirname获取当前文件所在目录的绝对路径
  2. writeFile(异步),是IO线程,异步操作
    1. 覆盖写入
    2. 第一参数为路径,第二参数为写入的内容,第三参数{flag : 'a'}代表追加写入

image.png 3. writeFileSync(同步)

  1. appendFile(追加写入)
    1. 参数和异步写入一致,第三参数为配置项,可不写直接写回调函数
    2. 追加成功后会返回null
    3. 换行为 \r\n
  2. createWriteStream(流式写入)
    1. 流式写入,适合连续、大文件写入
    2. 创建写入流后,调用实例的write方法即可写入

image.png