Node.js Stream readable.read() 方法
readable.read() 方法是 Stream 模块的内置应用程序编程接口,用于从内部缓冲区中读取数据。如果未指定编码或流在对象模式下工作,则它将数据作为缓冲区对象返回。
句法:
readable.read( size )
参数:此方法接受单个参数大小,它指定要从内部缓冲区读取的字节数。
返回值:如果使用此方法,则在输出中显示此方法后读取的数据,如果缓冲区中不存在数据,则返回 null。
下面的示例说明了 Node.js 中readable.read() 方法的使用:
示例 1:
// Node.js program to demonstrate the
// readable.read() method
// Include fs module
const fs = require("fs");
// Constructing readable stream
const readable = fs.createReadStream("input.txt");
// Instructions for reading data
readable.on('readable', () => {
let chunk;
// Using while loop and calling
// read method
while (null !== (chunk = readable.read())) {
// Displaying the chunk
console.log(`read: ${chunk}`);
}
});
console.log("done");
输出:
done
read: hello
在这里,在上面的例子中,从缓冲区读取的数据是“hello”,所以它被返回了。
示例 2:
// Node.js program to demonstrate the
// readable.read() method
// Include fs module
const fs = require("fs");
// Constructing readable stream
const readable = fs.createReadStream("input.txt");
// Instructions for reading data
readable.on('readable', () => {
let chunk;
// Using while loop and calling
// read method with parameter
while (null !== (chunk = readable.read(1))) {
// Displaying the chunk
console.log(`read: ${chunk}`);
}
});
console.log("done");
输出:
done
read: h
read: e
read: l
read: l
read: o
在上面的例子中,数据的大小已经说明,因此在每个步骤中只从包含数据“hello”的文件“input.txt”中读取一个字节。
参考: https://nodejs.org/api/stream.html#stream_readable_read_size