Mega Code Archive

 
Categories / Java / File Input Output
 

Wraps a stream, printing to standard out everything that is written to it

/*  * LoggingWriter.java Created Sep 7, 2010 by Andrew Butler, PSL  */ //package prisms.util; import java.io.Writer; /** Wraps a stream, printing to standard out everything that is written to it. */ public class LoggingWriter extends Writer {   private java.io.Writer theBase;   private java.io.Writer theLog;   /**    * @param base    *            The writer to wrap    * @param logFile    *            The name of the file to write to    * @throws java.io.IOException    *             If the file cannot be written to    */   public LoggingWriter(java.io.Writer base, String logFile)       throws java.io.IOException {     theBase = base;     if (logFile != null)       theLog = new java.io.BufferedWriter(new java.io.FileWriter(logFile));   }   /**    * @return The writer wrapped by this logging writer    */   public java.io.Writer getBase() {     return theBase;   }   @Override   public void write(char[] cbuf, int off, int len) throws java.io.IOException {     theBase.write(cbuf, off, len);     if (theLog != null)       theLog.write(cbuf, off, len);     else       System.out.print(new String(cbuf, off, len));   }   @Override   public void flush() throws java.io.IOException {     theBase.flush();     if (theLog != null)       theLog.flush();     else       System.out.flush();   }   @Override   public void close() throws java.io.IOException {     theBase.close();     if (theLog != null)       theLog.close();     else       System.out.println();   } }