📜  Node.js Stream readable.readableEncoding 属性(1)

📅  最后修改于: 2023-12-03 15:17:55.690000             🧑  作者: Mango

Node.js Stream readable.readableEncoding 属性

在 Node.js 中,流(Stream)是一种处理流式数据的抽象接口。其中,readable 对象用于读取数据。在可读流对象上有一个叫 readableEncoding 的属性。

可读流对象

可读流是一个有序的,数据传输的有限集合。我们可以通过监听事件(Event)订阅数据格式,查看数据流状态,以读取流中的数据。可读流的示例有:

  • http.IncomingMessage
  • fs.ReadStream
  • net.Socket
  • zlib.Inflate

使用可读流时,需要依次调用数据的读取操作。如果没有数据可用,则可读流将保持不活动状态,直到有更多数据被读取。

readableEncoding 属性

readableEncoding(字符串) 表示传入数据的编码。但是,由于流可以传输任意二进制数据,因此如果应用程序允许传输二进制数据,该参数应该选择 'null'undefined

默认情况下,readableEncoding 属性为 null,表示数据应该以 Buffer 的形式传输(即原始字节)。

readableEncoding 属性为字符串,则该属性为流的传入数据的字符串编码。当流读取文本文件时,该值将是文件的编码。

关于 readableEncoding 的使用,我们通过一个简单的示例来演示对其的使用。

const { Readable } = require('stream')

const readable = new Readable({
  read() {
    this.push('Hello World!')
    this.push(null)
  },
  encoding: 'utf8'
})

console.log(readable.readableEncoding) // utf8

在上面的示例中,我们创建了一个可读流 readable,并指定了数据源。readableEncoding 属性也被设置为 utf8,这意味着传入数据的编码为 utf8。调用 readable.readableEncoding,我们可以得到流传输的数据编码。

参考文献