热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于node.js:Node-Buffer缓冲区

Buffer(缓冲区)Buffer的构造和数组很像,操作方法和数组也相似数组中不能存储二进制文件,而Buffer就是专门用来寄存二进制数据的它的元素为16进制的两位数。一个元素就代表一个字节所以Buffer中每一个元素的范畴都是00-ff之间00-ff转换成二进制就是00000000-11111111,这也是咱们计算机最底层的一个0或者1,咱们称之为

Buffer(缓冲区)

  • Buffer的构造和数组很像,操作方法和数组也相似
  • 数组中不能存储二进制文件,而Buffer就是专门用来寄存二进制数据的
  • 它的元素为16进制的两位数。一个元素就代表一个字节

    • 所以Buffer中每一个元素的范畴都是00-ff之间
    • 00-ff转换成二进制就是00000000-11111111,这也是咱们计算机最底层的
    • 一个0或者1,咱们称之为1位(bit),8bit = 1byte(字节)
  • 在Buffer中存储的是二进制数据,然而显示的时候都是以16进制显示
  • Buffer中内存不是通过Javascript调配的,而是底层通过C++申请的,也就是咱们能够间接通过Buffer来创立内存中的空间

    let str = 'Hello World'
    
    // 将一个字符串转换为Buffer
    let bufStr = Buffer.from(str)
    // 如何转换成字符串呢?
    let newStr = bufStr.toString()
    
    console.log(bufStr)
    // 
    console.log(newStr)
    // Hello World
创立指定大小的Buffer
  • Buffer的大小,一旦创立好就能批改了
  • 老的办法,Buffer构造函数的形式,不举荐应用,官网说行将废除

    // 创立一个10个字节的Buffer
    let buf = new Buffer(10)
  • 新的形式一:alloc

    // 创立一个10个字节的Buffer
    let buf = Buffer.alloc(10)
    buf[0] = 66
    buf[1] = 255
    buf[2] = 0xaa // 这些写法是间接赋值一个16进制的数据,16进制的数据,就是`0x`结尾
    
    console.log(buf)
    console.log(buff[2]) // 后果是170,为什么不是aa呢?因为只有数字在控制台或页面中输入,肯定是10进制
  • 新的形式二:allocUnsafe

    // 创立一个10个字节的Buffer
    // 和alloc根本一样,只是allocUnsafe创立的Buffer中可能会含有敏感数据
    // 什么意思呢?alloc在创立的时候,会清空那一块内存,而allocUnsafe不会清空,也就是说之前的数据,可能会泄露进去
    // 既然如此,为什么还要allocUnsafe呢?因为allocUnsafe的效率更高,然而咱们失常来说还是应用alloc
    let buf = Buffer.allocUnsafe(10)
    console.log(buf)

推荐阅读
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 本文详细介绍了 Node.js 中 OS 模块的 arch 方法,包括其功能、语法、参数以及返回值,并提供了具体的使用示例。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • STM32代码编写STM32端不需要写关于连接MQTT服务器的代码,连接的工作交给ESP8266来做,STM32只需要通过串口接收和发送数据,间接的与服务器交互。串口三配置串口一已 ... [详细]
  • 编码unicode解决了语言不通的问题.但是.unicode又有一个新问题.由于unicode是万国码.把所有国家的文字都编进去了.这就导致一个unicode占用的空间会很大.原来 ... [详细]
  • 字符串中特定模式出现次数的计算方法
    本文详细探讨了如何高效地计算字符串中特定模式(如'pat')的出现次数,通过实例分析与算法解析,帮助读者掌握解决此类问题的方法。 ... [详细]
  • 本文详细介绍了如何在循环双链表的指定位置插入新元素的方法,包括必要的步骤和代码示例。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 利用 JavaScript 和 Node.js 验证时间的有效性
    本文探讨了如何使用 JavaScript 和 Node.js 验证时间的有效性。通过编写一个 `isTime` 函数,我们可以确保输入的时间格式正确且有效。该函数利用正则表达式匹配时间字符串,检查其是否符合常见的日期时间格式,如 `YYYY-MM-DD` 或 `HH:MM:SS`。此外,我们还介绍了如何处理不同时间格式的转换和验证,以提高代码的健壮性和可靠性。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 本文探讨了如何利用 Android 的 Movie 类来展示 GIF 动画,并详细介绍了调整 GIF 尺寸以适应不同布局的方法。同时,提供了相关的代码示例和注意事项。 ... [详细]
  • 本文详细探讨了Java中HashMap类的hash()方法的工作原理及其重要性,特别是在JDK 7版本中的实现。 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • 本文详细介绍了在Luat OS中如何实现C与Lua的混合编程,包括在C环境中运行Lua脚本、封装可被Lua调用的C语言库,以及C与Lua之间的数据交互方法。 ... [详细]
  • td{border:1pxsolid#808080;}参考:和FMX相关的类(表)TFmxObjectIFreeNotification ... [详细]
author-avatar
山野木每子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有