/*
 * Copyright (C) 2020, Michael Dardis. and others
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0 which is available at
 * https://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package org.eclipse.jgit.util.io;

import java.io.IOException;
import java.io.OutputStream;

An output stream that writes all data to two streams.
Since:5.7
/** * An output stream that writes all data to two streams. * * @since 5.7 */
public class TeeOutputStream extends OutputStream { private final OutputStream stream1; private final OutputStream stream2;
Initialize a tee output stream.
Params:
  • stream1 – first output stream
  • stream2 – second output stream
/** * Initialize a tee output stream. * * @param stream1 first output stream * @param stream2 second output stream */
public TeeOutputStream(OutputStream stream1, OutputStream stream2) { this.stream1 = stream1; this.stream2 = stream2; }
{@inheritDoc}
/** {@inheritDoc} */
@Override public void write(byte[] buf) throws IOException { this.stream1.write(buf); this.stream2.write(buf); }
{@inheritDoc}
/** {@inheritDoc} */
@Override public void write(byte[] buf, int off, int len) throws IOException { this.stream1.write(buf, off, len); this.stream2.write(buf, off, len); }
{@inheritDoc}
/** {@inheritDoc} */
@Override public void write(int b) throws IOException { this.stream1.write(b); this.stream2.write(b); }
{@inheritDoc}
/** {@inheritDoc} */
@Override public void flush() throws IOException { this.stream1.flush(); this.stream2.flush(); }
{@inheritDoc}
/** {@inheritDoc} */
@Override public void close() throws IOException { try { this.stream1.close(); } finally { this.stream2.close(); } } }