package java.io;
/**
* Minimal implementation of PrintStream.
*
* Currently only implements the mandatory write
* method and println.
*
* @author Lawrie Griffiths
*
*/
public class PrintStream extends OutputStream {
private OutputStream os;
public PrintStream(OutputStream os) {
this.os = os;
}
@Override
public void write (int c) {
try {
os.write(c);
} catch (IOException ioe) {};
}
/**
* Writes a string to the underlying output stream.
*
* @param s the string to print
*/
public void print(String s) {
for(int i=0;i<s.length();i++) {
write(s.charAt(i));
}
//TODO optional flush
}
/**
* Flush any pending output in the stream
*/
@Override
public void flush()
{
try {
os.flush();
} catch (IOException ioe) {}
}
/**
* Writes a newline character
* to the underlying output stream.
*/
public void println() {
write('\n');
//TODO make flush optional
flush();
}
/**
* Writes a string followed by a newline character
* to the underlying output stream.
*
* @param s the string to print
*/
public void println(String s) {
print(s);
write('\n');
//TODO make flush optional
flush();
}
/*** print() Delegates ***/
public void print(boolean v)
{
print(String.valueOf(v));
}
public void print(char v)
{
print(String.valueOf(v));
}
public void print(char[] v)
{
print(String.valueOf(v));
}
public void print(double v)
{
print(String.valueOf(v));
}
public void print(float v)
{
print(String.valueOf(v));
}
public void print(int v)
{
print(String.valueOf(v));
}
public void print(long v)
{
print(String.valueOf(v));
}
public void print(Object v)
{
print(String.valueOf(v));
}
/*** println() Delegates ***/
public void println(boolean v)
{
println(String.valueOf(v));
}
public void println(char v)
{
println(String.valueOf(v));
}
public void println(char[] v)
{
println(String.valueOf(v));
}
public void println(double v)
{
println(String.valueOf(v));
}
public void println(float v)
{
println(String.valueOf(v));
}
public void println(int v)
{
println(String.valueOf(v));
}
public void println(long v)
{
println(String.valueOf(v));
}
public void println(Object v)
{
println(String.valueOf(v));
}
}