0

这是场景:

一个.js:

新鲜玩意!

编码:

var fs = require('fs');
var fileName = 'a.js'; 

fs.open(fileName, 'r', function (error, fd) {

    var buf = new Buffer(1024);

    fs.read(fd, buf, 0, buf.length, null, function (error, bytesRead, buffer) {

        console.log(buffer.toString());

        });     

    });

输出很乱。

所以这是我的问题:

  1. 为什么输出是混乱的而不是有效的部分。
  2. 如何只输出有效部分。
  3. fs.read 中回调的第三个参数就是 fs.read 函数的第二个参数。那正确吗?
4

1 回答 1

0

您应该像这里给出的那样限制缓冲区打印的长度Nodejs 缓冲区

  1. 输出很混乱,因为 buffer 打印了您在这一行分配的整个内存地址

    var buf = new Buffer(1024);
    
  2. 要输出有效部分,只需将限制放在这样的buffer.toString方法上

    console.log(buffer.toString('utf-8' , 0 , bytesRead));
    
  3. 是的,它是正确的方式。
于 2013-10-07T08:14:43.107 回答