fs write返回写入的0个字节



所以我正在尝试向文件写入缓冲区。我正在使用fs.write来实现它,但事情正在恶化。

fs.write(info.fd, myBuffer, null, null, function(err, written, buffer)     {
    if (err) {console.log(err);}
    console.log(written);
    console.log(buffer);
    fs.close(info.fd, function(err) {
          if (err) {console.log(err);}
    });
});

因此,即使console.log(buffer)打印<Buffer 68 65 6c 6c 6f 0a 0a 63 68 61 6e 67 65 0a>console.log(written)也打印出0。有人知道这里会发生什么吗?其他一切似乎都在起作用,所以我真的不知道发生了什么。

"fs.write"函数有两种形式:

fs.write(fd, buffer, offset, length[, position], callback)
fs.write(fd, data[, position[, encoding]], callback)

您的调用似乎与第一个表单匹配,并使用null作为写入长度。

如果你打算全部写入,你可以尝试传递缓冲区的长度:

fs.write(info.fd, myBuffer, 0, myBuffer.length, function(err, written, buffer)     {

最新更新