/*************************************** * * * JBoss: The OpenSource J2EE WebOS * * * * Distributable under LGPL license. * * See terms of license at gnu.org. * * * ***************************************/ package org.jboss.util.stream; import java.io.IOException; import java.io.PrintWriter; import java.io.OutputStream; import java.io.InterruptedIOException; import java.io.Writer; /** * A PrintWriter that ends lines with a carriage return-line feed * (CRLF). * *

Concurrency

* This class is as synchronized as PrintWriter. * * @version $Revision: 1.1 $ * @author Jason Dillon */ public class CRLFPrintWriter extends PrintWriter { protected boolean autoFlush = false; public CRLFPrintWriter(final Writer out) { super(out); } public CRLFPrintWriter(final Writer out, final boolean autoFlush) { super(out, autoFlush); this.autoFlush = autoFlush; } public CRLFPrintWriter(final OutputStream out) { super(out); } public CRLFPrintWriter(final OutputStream out, final boolean autoFlush) { super(out, autoFlush); this.autoFlush = autoFlush; } protected void ensureOpen() throws IOException { if (out == null) throw new IOException("Stream closed"); } public void println() { try { synchronized (lock) { ensureOpen(); out.write("\r\n"); if (autoFlush) { out.flush(); } } } catch (InterruptedIOException e) { Thread.currentThread().interrupt(); } catch (IOException e) { setError(); } } }