None.js 第六步 Stream(流)

None.js 第六步 Stream(流)

输出流

    var fs = require("fs");
    var data = '';

    // 创建可读流
    var readerStream = fs.createReadStream('input.txt');
    // 设置编码
    readerStream.setEncoding('UTF8');
    // 处理流事件  --> data, end, err
    readerStream.on('data', function (chunk) {
        // chunk 就是从文件里读取出来的文本数据
        data += chunk;
        console.log("this is data+chunk", chunk);
    });

    readerStream.on('end', function () { 
        console.log(data);
    });

    readerStream.on('error', function (err) {
        console.log(err.stack);
    });

    console.log("程序执行结束");
    

打印出:

    程序执行结束
    input.txt内的文本信息

写入流数据

    var fs = require("fs");
    var data = '我将是写入流内的数据';

    // 创建一个可以写入的流,写入output.txt中
    var writeStream = fs.createWriteStream('output.txt');

    // 使用UTF8编码写入数据
    writeStream.write(data, 'UTF8');
    // 标记文件末尾,表示结束了,不加 finish, error将不会执行
    writeStream.end();

    writeStream.on('finish', function () {
        console.log("写入完成");
    });

    writeStream.on('error', function (err) {
        console.log(err.stack);
    });

    console.log("程序执行结束");

打印出:

    程序执行结束
    生成一个output.txt的文件,内容为data的文本数据