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
    

      

  • 相关阅读:
    关于使用_bstr_t的一个坑
    ubuntu下使用sublime text进行C编程开发尝鲜
    [转]在ubuntu下安装sublime text
    [转] COM编程总结
    [转]wcout输出中文却不显示出来
    理解抽象类与接口
    软件设计原则[总结]
    [转] 在图标库中,找到合适的图标 ico
    [转]单播、多播(组播)、广播简介
    NUC970开发资源
  • 原文地址:https://www.cnblogs.com/fdxjava/p/14202673.html
Copyright © 2011-2022 走看看