/*
* Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
* This source file is part of the Cangjie project, licensed under Apache-2.0
* with Runtime Library Exception.
*
* See https://cangjie-lang.cn/pages/LICENSE for license information.
*/
// The Cangjie API is in Beta. For details on its capabilities and limitations, please refer to the README file.
/**
* @file
*
* This is a library for MultiOutputStream class.
*/
package std.io
public class MultiOutputStream<T> <: OutputStream where T <: OutputStream {
private var outputArr: Array<T>
/**
* @throws IllegalArgumentException if output is empty
*/
public init(output: Array<T>) {
if (output.isEmpty()) {
throw IllegalArgumentException("The array of output streams cannot be empty!")
}
outputArr = output.clone()
}
public func write(buffer: Array<Byte>): Unit {
for (outputStream in outputArr) {
outputStream.write(buffer)
}
}
public func flush(): Unit {
for (outputStream in outputArr) {
outputStream.flush()
}
}
}