zoukankan      html  css  js  c++  java
  • Buffer 流文件

    /* 
    什么是 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
    

      

  • 相关阅读:
    mybatis中refid是什么意思
    spring源码之—Assert.notNull()
    MySQL数据库查询 concat 字段合并 身份证 名字手机号脱敏 case when等
    Java 8 引入的一个很有趣的特性是 Optional 类
    <if test="distinct">distinct </if> 这样写的问题
    bit类型数据,是1=false 还是0=false
    开发用的软件
    写代码的心得
    SQL Server数据库级别触发器
    python访问aws-S3服务
  • 原文地址:https://www.cnblogs.com/fdxjava/p/14202673.html
Copyright © 2011-2022 走看看