MultiOutputStream 示例

下面是 MultiOutputStream 向绑定的所有流中写入数据示例。

import std.io.*

main(): Unit {
    const size = 2

    /* 将两个 ByteArrayStream 绑定到 MultiOutputStream */
    let streamArr = Array<OutputStream>(size, {_ => ByteArrayStream()})
    let multiOutputStream = MultiOutputStream(streamArr)

    /* 往 MultiOutputStream 写入数据,会同时写入绑定的两个 ByteArrayStream */
    multiOutputStream.write("test".toArray())

    /* 读取 ByteArrayStream 中数据,验证结果 */
    for (i in 0..size) {
        match (streamArr[i]) {
            case v: ByteArrayStream =>
                println(String.fromUtf8(v.readToEnd()))
            case _ => throw Exception()
        }
    }
}

运行结果

test
test