📜  Node.js Stream readable.read() 方法

📅  最后修改于: 2022-05-13 01:56:23.518000             🧑  作者: Mango

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