⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teeoutputstream.java

📁 JAVA网络编程技术内幕一书的源代码
💻 JAVA
字号:
/* * Java Network Programming, Second Edition * Merlin Hughes, Michael Shoffner, Derek Hamner * Manning Publications Company; ISBN 188477749X * * http://nitric.com/jnp/ * * Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner; * all rights reserved; see license.txt for details. */import java.io.*;
import java.util.*;

public class TeeOutputStream extends OutputStream {
  protected Vector outVector;
  
  public TeeOutputStream (OutputStream out0, OutputStream out1) {
    outVector = new Vector ();
    outVector.addElement (out0);
    outVector.addElement (out1);
  }

  public TeeOutputStream (Enumeration outs) {
    outVector = new Vector ();
    while (outs.hasMoreElements ())
      outVector.addElement (outs.nextElement ());
  }

  public void flush () throws MultiIOException {
    MultiIOException problems =
      new MultiIOException ("Flush exceptions");
    for (int i = 0; i < outVector.size (); ++ i) {
      OutputStream out = (OutputStream) outVector.elementAt (i);
      try {
        out.flush ();
      } catch (IOException ex) {
        problems.addException (new OutputStreamException (out, ex));
      }
    }
    if (problems.hasMoreExceptions ())
      throw problems;
  }

  public void close () throws MultiIOException {
    MultiIOException problems =
      new MultiIOException ("Close exceptions");
    for (int i = 0; i < outVector.size (); ++ i) {
      OutputStream out = (OutputStream) outVector.elementAt (i);
      try {
        out.close ();
      } catch (IOException ex) {
        problems.addException (new OutputStreamException (out, ex));
      }
    }
    if (problems.hasMoreExceptions ())
      throw problems;
  }

  public void write (int datum) throws MultiIOException {
    MultiIOException problems =
      new MultiIOException ("Write exceptions");
    for (int i = 0; i < outVector.size (); ++ i) {
      OutputStream out = (OutputStream) outVector.elementAt (i);
      try {
        out.write (datum);
      } catch (IOException ex) {
        problems.addException (new OutputStreamException (out, ex));
      }
    }
    if (problems.hasMoreExceptions ())
      throw problems;
  }

  public void write (byte[] data, int offset, int length) throws MultiIOException {
    MultiIOException problems =
      new MultiIOException("Write exceptions");
    for (int i = 0; i < outVector.size (); ++ i) {
      OutputStream out = (OutputStream) outVector.elementAt (i);
      try {
        out.write (data, offset, length);
      } catch (IOException ex) {
        problems.addException (new OutputStreamException (out, ex));
      }
    }
    if (problems.hasMoreExceptions ())
      throw problems;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -