Buffer 流文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | /* 什么是 Buffer? Buffer 就是 Node.js 处理二进制数据的容器 在 ES6 之前,JS 并没有处理二进制的机制, 在 ES6 之后,JS 使用了 TypedArray 里的 Uint8Array 作为 Buffer 的底层 Buffer 类似于整数的数组,但是长度受限(8bit) 存储的机制并不属于 V8 管理 属于全局变量,不需要调用 require('buffer').Buffer v8 之前的 node.js 没有初始化 Buffer,v8 之后默认初始化 Buffer 的主要作用 数值的读取与存储 字符的读取与存储 二进制数据的读取与存储(核心能力) */ // 1.创建一定长度的 Buffer,并初始化为 0 const LEN = 10; const b = Buffer.alloc(LEN); console.log(b); /* 2.创建带初始值的 Buffer */ const c = Buffer.alloc(10, 'a' ); // c => <Buffer 61 61 61 61 61 61 61 61 61 61> /* 3.创建不初始化的 Buffer */ const d = Buffer.allocUnsafe(10); // d => <Buffer f8 b1 7d a1 7c 7f 00 00 00 99> /* 4.从数组开始初始化 Buffer */ const e = Buffer.from([ 'a' , 'b' , 'c' ], 'latin1' ); // e => <Buffer 00 00 00> const f = Buffer.from([3, 2, 1]); // f => <Buffer 03 02 01> /* 5.从字符以 UTF-8 形式存储 */ const g = Buffer.from( '中国' , 'utf8' ); // g => <Buffer e4 b8 ad e5 9b bd> // 还原为字符 g.toString() // 中国 /* 6.以指定字符集存储 */ /* Latin1是ISO-8859-1的别名,有些环境下写作Latin-1。ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号 */ const h = Buffer.from( '中国' , 'latin1' ); // h => <Buffer 2d fd> const i = Buffer.from( 'sf' , 'latin1' ); // i => <Buffer 73 66> /* 7.拼接 buffer */ const buf1 = Buffer.alloc(10); const buf2 = Buffer.alloc(14); const buf3 = Buffer.alloc(18); const totalLength = buf1.length + buf2.length + buf3.length; // Prints: 42 console.log(totalLength); const bufA = Buffer.concat([buf1, buf2, buf3], totalLength); // Prints: <Buffer 00 00 00 00 ...> console.log(bufA); // Prints: 42 console.log(bufA.length); /* 剩下的文档 */ https: //hub.fastgit.org/Web-Dev-Tutor/nodejs/blob/master/8.%20Buffer%20%E4%B8%8E%20%E6%B5%81.md |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?