尝试使用node.js,fs.read

时间:2011-04-06 18:47:15

标签: javascript node.js

这就是我调用fs.read的方式,但我不断收到错误。我的语法在这里有什么问题吗?

命令行上的错误是:“errorCode”: - 1,

        var fs = IMPORTS.require('fs'), 
    sys = IMPORTS.require("sys")    

    var file=   this.filename, 
    start=  parseInt(offsetStart),
    end=    parseInt(offsetEnd);
    bufSize = 64 * 1024;

     fs.open(file,'r',0666,function(err,fd) {
          fs.read(fd,bufSize,0,end,start,function(err,str,count) {
              result = {    reply:str,
                        reply2:count            
                };}); });

2 个答案:

答案 0 :(得分:6)

如果你解释一下你在这做什么,这可能会有所帮助。你为什么打开一个文件,你想从中读取什么?

如果是文本文件,使用类似这样的ReadStream可能更简单:

inp = fs.createReadStream('sample.txt');
inp.setEncoding('utf8');
inptext = '';
inp.on('data', function (data) {
    inptext += data;
});
inp.on('end', function (close) {
    console.log(inptext);
});

您可能希望查看代码并自问回复语句中的数据。如果你真的想要使用一个回调链,你可以尝试传入一个空对象,然后用数据填充它,这样你就不必担心将数据发送回回调链。

答案 1 :(得分:1)

如果你期望高达100k并且缓冲区是64k,并且图像被偏移,那么它是否可以获得从7k开始的第一个57K?

如果bufSize为256 * 1024会怎样?

可以显示或转储offsetStart和offsetEnd的值吗?他们似乎值得了解。

另外,第二个值实际上是偏移量,还是长度?