readAvailable

abstract fun readAvailable(scope: CoroutineScope, buffer: ByteArray, offset: Int, length: Int): Deferred<Int>

异步地将通道中当前可用的字节读入指定的字节数组.

这是一个 非阻塞式 读取操作. 与 readByteArray 不同, 此方法 不会 挂起等待直到填满 length 个字节. 它会立即读取当前缓冲区中所有可用的字节 (最多 length 个), 并返回实际读取的数量. 如果当前没有可用的字节, 它可能会返回 0 而不是等待.

关键特性:

  • 立即返回: 优先处理已到达的数据, 而不是等待数据流.

  • 返回值: Deferred 的结果是实际读取的字节数.

  • > 0: 成功读取的字节数.

  • -1: 通道已关闭, 并且没有更多数据可读 (已到达流的末尾).

Return

一个 Deferred<Int> 对象. 其未来结果是实际读取的字节数, 如果已到达流的末尾, 则为 -1.

Parameters

scope

执行异步读取操作的协程作用域.

buffer

用于接收读取数据的目标字节数组.

offset

buffer 中开始写入数据的起始索引 (包含).

length

尝试读取的最大字节数.