缓冲区的输出很乱

时间:2013-10-07 07:45:15

标签: javascript node.js

这是场景:

a.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函数的第二个参数。是吗?

1 个答案:

答案 0 :(得分:0)

您应该按照此处Nodejs buffer

指定的缓冲区限制打印长度
  1. 输出很乱,因为缓冲区会打印您在此行指定的整个内存地址

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

    console.log(buffer.toString('utf-8' , 0 , bytesRead));
    
  3. 是的,它是正确的。