readStream

abstract fun readStream(bufferSize: Int): Flow<ByteArray>

以冷流(Cold Flow)的形式返回一个字节块序列,用于流式读取此通道的数据。

这是处理大文件或大型数据流的 首选方法,因为它具有天然的背压(backpressure)支持, 并且不会将整个内容加载到内存中。只有当您开始收集(collect)这个 Flow 时, 底层的数据读取才会开始。

使用示例:

// 假设 file 是一个文件写入流
channel.readStream()
.onEach { chunk -> println("接收到 ${chunk.size} 字节") }
.collect { chunk -> file.write(chunk) }

Return

返回一个 Flow<ByteArray>,您可以通过 collect 或其他 Flow 操作符来消费它。

Parameters

bufferSize

用于从通道内部读取数据块的缓冲区大小(字节)。一个合理的默认值 已被提供,但在特定场景下调整此值可能会优化性能。

Throws

如果 bufferSize 不是一个正数。