我正在尝试创建一个可读的文件流,我可以从其中读取单个字节。我在用下面的代码。
var rs = fs.createReadStream(file).on('open', function() {
var buff = rs.read(8); //Read first 8 bytes
console.log(buff);
});考虑到该文件是至少8个字节的现有文件,为什么我要获得'null‘作为输出?
发布于 2013-08-10 09:25:30
事件open表示流已经初始化,但并不意味着您可以从流中读取。您必须侦听readable或data事件。
var rs = fs.createReadStream(file);
rs.once('readable', function() {
var buff = rs.read(8); //Read first 8 bytes only once
console.log(buff.toString());
});发布于 2013-08-10 05:49:22
看起来你在给 method打电话。但是,该方法仅在Streams接口中可用。在Streams接口中,您要查找的是'data'事件,而不是'open'事件。
这说明,文档实际上建议不要这样做。相反,如果您想要处理块,则应该一次处理它们:
var rs = fs.createReadStream('test.txt');
rs.on('data', function(chunk) {
console.log(chunk);
});如果您只想读取文件的特定部分,则可能需要查看级别较低的fs.open()和fs.read()。
https://stackoverflow.com/questions/18158806
复制相似问题