Kan*_*Suh 5 filestream fs node.js
我尝试在Mac OS中使用Nodejs fs.read方法。但是它不起作用..我在下面的源代码中使用
var fs = require('fs');
fs.open('helloworld.txt', 'r', function(err, fd) {
fs.fstat(fd, function(err, stats) {
var bufferSize=stats.size ,
chunkSize=512,
buffer=new Buffer(bufferSize),
bytesRead = 0;
while (bytesRead < bufferSize) {
if ((bytesRead + chunkSize) > bufferSize) {
chunkSize = (bufferSize - bytesRead);
}
fs.read(fd, buffer, bytesRead, chunkSize, bytesRead, testCallback);
bytesRead += chunkSize;
}
console.log(buffer.toString('utf8'));
});
fs.close(fd);
});
var testCallback = function(err, bytesRead, buffer){
console.log('err : ' + err);
};
Run Code Online (Sandbox Code Playgroud)
实际上,我在stackoverflow中使用了一些示例。
当我执行源代码时,
err : Error: EBADF, read
Run Code Online (Sandbox Code Playgroud)
此错误返回。
但是,如果我使用readFile方法,则效果很好。
fs.readFile('helloworld.txt', function (err, data) {
if (err) throw err;
console.log(data.toString('utf8'));
});
Run Code Online (Sandbox Code Playgroud)
结果是
Hello World!
Run Code Online (Sandbox Code Playgroud)
当然,它是同一文件。
请让我知道问题出在哪里。
谢谢。