热门标签 | 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)

推荐阅读
  • 探索偶数次幂二项式系数的求和方法及其数学意义 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 在探讨C语言编程文本编辑器的最佳选择与专业推荐时,本文将引导读者构建一个基础的文本编辑器程序。该程序不仅能够打开并显示文本文件的内容及其路径,还集成了菜单和工具栏功能,为用户提供更加便捷的操作体验。通过本案例的学习,读者可以深入了解文本编辑器的核心实现机制。 ... [详细]
  • 在处理木偶评估函数时,我发现可以顺利传递本机对象(如字符串、列表和数字),但每当尝试将JSHandle或ElementHandle作为参数传递时,函数会拒绝接受这些对象。这可能是由于这些句柄对象的特殊性质导致的,建议在使用时进行适当的转换或封装,以确保函数能够正确处理。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 在Java编程中,`AbstractClassTest.java` 文件详细解析了抽象类的使用方法。该文件通过导入 `java.util.*` 包中的 `Date` 和 `GregorianCalendar` 类,展示了如何在主方法 `main` 中实例化和操作抽象类。此外,还介绍了抽象类的基本概念及其在实际开发中的应用场景,帮助开发者更好地理解和运用抽象类的特性。 ... [详细]
  • AIX编程挑战赛:AIX正方形问题的算法解析与Java代码实现
    在昨晚的阅读中,我注意到了CSDN博主西部阿呆-小草屋发表的一篇文章《AIX程序设计大赛——AIX正方形问题》。该文详细阐述了AIX正方形问题的背景,并提供了一种基于Java语言的解决方案。本文将深入解析这一算法的核心思想,并展示具体的Java代码实现,旨在为参赛者和编程爱好者提供有价值的参考。 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 深入探索 JavaScript 中 Array 数组对象的基本操作与应用
    深入探索 JavaScript 中 Array 数组对象的基本操作与应用 ... [详细]
  • Node.js 中的椭圆曲线 Diffie-Hellman 密钥交换方法 `crypto.createECDH()` 使用详解 ... [详细]
  • 如何在 Node.js 环境中将 CSV 数据转换为标准的 JSON 文件格式? ... [详细]
  • 本书详细介绍了在最新Linux 4.0内核环境下进行Java与Linux设备驱动开发的全面指南。内容涵盖设备驱动的基本概念、开发环境的搭建、操作系统对设备驱动的影响以及具体开发步骤和技巧。通过丰富的实例和深入的技术解析,帮助读者掌握设备驱动开发的核心技术和最佳实践。 ... [详细]
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社区 版权所有