将一个流输出到多个流中

/// <summary>
 /// MultiTextWriter 的摘要说明。
 /// 通过重写Write和WriteLine实现同时向多个流写入数据。
 ///
 /// </summary>
 public class MultiTextWriter : System.IO.TextWriter
 {
  public System.IO.TextWriter[] m_Writers;
  public MultiTextWriter( System.IO.TextWriter[] writers )
  {
   m_Writers = writers;
  }

  public override void Write( string value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( value );
    writer.Flush();
   }
  }
  public override void Write( object value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( value );
    writer.Flush();
   }
  }
  public override void Write( ulong value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( value );
    writer.Flush();
   }
  }
  public override void Write( long value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( value );
    writer.Flush();
   }
  }
  public override void Write( uint value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( value );
    writer.Flush();
   }
  }
  public override void Write( int  value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( value );
    writer.Flush();
   }
  }
  public override void Write( float value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( value );
    writer.Flush();
   }
  }
  public override void Write( decimal value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( value );
    writer.Flush();
   }
  }
  public override void Write( double value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( value );
    writer.Flush();
   }
  }
  public override void Write( char[] buffer , int index , int count )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( buffer , index , count );
    writer.Flush();
   }
  }
  public override void Write( char[] buffer )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( buffer );
    writer.Flush();
   }
  }
  public override void Write( char value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( value );
    writer.Flush();
   }
  }
  public override void Write( bool value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( value );
    writer.Flush();
   }
  }
  public override void Write( string format , params object[] arg )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( format , arg );
    writer.Flush();
   }
  }
  public override void Write( string format , object arg0 , object arg1 , object arg2 )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( format , arg0 , arg1 , arg2 );
    writer.Flush();
   }
  }
  public override void Write( string format , object arg0 , object arg1 )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( format , arg0 , arg1 );
    writer.Flush();
   }
  }
  public override void Write( string format , object arg0 )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Write( format , arg0 );
    writer.Flush();
   }
  }

  public override void WriteLine( )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( );
    writer.Flush();
   }
  }
  public override void WriteLine( string value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( value );
    writer.Flush();
   }
  }
  public override void WriteLine( object value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( value );
    writer.Flush();
   }
  }
  public override void WriteLine( ulong value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( value );
    writer.Flush();
   }
  }
  public override void WriteLine( long value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( value );
    writer.Flush();
   }
  }
  public override void WriteLine( uint value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( value );
    writer.Flush();
   }
  }
  public override void WriteLine( int  value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( value );
    writer.Flush();
   }
  }
  public override void WriteLine( float value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( value );
    writer.Flush();
   }
  }
  public override void WriteLine( decimal value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( value );
    writer.Flush();
   }
  }
  public override void WriteLine( double value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( value );
    writer.Flush();
   }
  }
  public override void WriteLine( char[] buffer , int index , int count )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( buffer , index , count );
    writer.Flush();
   }
  }
  public override void WriteLine( char[] buffer )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( buffer );
    writer.Flush();
   }
  }
  public override void WriteLine( char value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( value );
    writer.Flush();
   }
  }
  public override void WriteLine( bool value )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( value );
    writer.Flush();
   }
  }
  public override void WriteLine( string format , params object[] arg )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( format , arg );
    writer.Flush();
   }
  }
  public override void WriteLine( string format , object arg0 , object arg1 , object arg2 )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( format , arg0 , arg1 , arg2 );
    writer.Flush();
   }
  }
  public override void WriteLine( string format , object arg0 , object arg1 )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( format , arg0 , arg1 );
    writer.Flush();
   }
  }
  public override void WriteLine( string format , object arg0 )
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.WriteLine( format , arg0 );
    writer.Flush();
   }
  }
  public override void Close()
  {
   foreach( System.IO.TextWriter writer in m_Writers )
   {
    writer.Flush();
    writer.Close ();
   }
  }

  public override System.Text.Encoding Encoding
  {
   get{ return System.Text.Encoding.Unicode; }
  }
 }

posted on 2004-08-17 23:21  kingdom  阅读(360)  评论(0)    收藏  举报

导航