美文网首页程序员
NodeJs的Buffer缓存与流式操作

NodeJs的Buffer缓存与流式操作

作者: 爱写Bug的程序猿 | 来源:发表于2019-03-09 21:55 被阅读2次

    BUFFER(缓存区)

    初始buffer

    • buffer的结构和数组很相似,操作方法也很相似。
    • buffer可以存储任何类型的数据(包括二进制文件与文本文件)。
    • 比传统的二进制性能高。
    • 通过十六进制显示。

    基本概念

    • 基本存储单位:字节(Byte),一个汉字占用3个字节,一个英文占用1个自己。
    • 最小存储单元:(bit)1Byte=8bit

    创建buffer

    数据转换

    let str = "Hello World";
    
    let buf = Buffer.from(str);
    //将字符串转换为buffer
    let str2 = buf.toString();//hello world
    //将buf转换为字符串
    

    创建指定大小的buffer

    let buf = new Buffer(10);
    console.log(buf.length);//10
    //nodejs中不建议使用new Buffer
    
    let buf2 = Buffer.alloc(10);
    //创建空间并且清空为0
    console.log(buf2.length);//10
    //buffer大小确定后不能修改,因为他直接操作底层内存
    console.log(buf2[0].toString(16));
    //转为十六进制输出
    
    let Buf3 = Buffer.allocUnsafe(10);
    //创建空间但不清空buffer
    

    流式读取文件

    let fs = require("fs");
    
    //创建可读流
    let readF = fs.createReadStream("文件路径");
    //创建可写流
    let writeF = fs.createWriteStream("文件路径2");
    readF.on("data",function(data){
       writeF.write(data);
       //写入可写流
    });
    
    readF.once("close",function(){
    //监听可读流关闭
        writeF.end();
        //关闭可写流
    });
    
    //上面的方法太麻烦了所以。。。
    readF.pipe(writeF);
    //这句话表示上面的一片
    

    相关文章

      网友评论

        本文标题:NodeJs的Buffer缓存与流式操作

        本文链接:https://www.haomeiwen.com/subject/efzepqtx.html