package net.ion.script.rhino; import java.io.File; import java.io.IOException; import java.io.PrintStream; public class MyOutput extends PrintStream { private StringBuilder builder = new StringBuilder(); public MyOutput() throws IOException { super(File.createTempFile("out", "osuffix")); } public void write(byte b[]) { String s = new String(b); append(s.trim(), false); } public String readOut() { String result = builder.toString(); builder = new StringBuilder(); return result; } public void write(byte b[], int off, int len) { String s = new String(b, off, len); append(s.trim(), false); } public void write(int b) { Integer i = new Integer(b); append(i.toString(), false); } public void println(String s) { append(s, true); } public void print(String s) { append(s, false); } public void print(Object obj) { if (obj != null) append(obj.toString(), false); else append("null", false); } public void println(Object obj) { if (obj != null) append(obj.toString(), true); else append("null", true); } private synchronized void append(String x, boolean newline) { builder.append(x); if (newline) builder.append("\r\n"); } }