2000-03-07 20:55:28 +01:00
|
|
|
/* Copyright (C) 1998, 1999 Free Software Foundation
|
1999-04-07 16:42:40 +02:00
|
|
|
|
|
|
|
This file is part of libgcj.
|
|
|
|
|
|
|
|
This software is copyrighted work licensed under the terms of the
|
|
|
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
|
|
|
details. */
|
|
|
|
|
|
|
|
package java.io;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Per Bothner <bothner@cygnus.com>
|
|
|
|
* @date April 17, 1998.
|
|
|
|
*/
|
|
|
|
/* Written using "Java Class Libraries", 2nd edition, plus online
|
|
|
|
* API docs for JDK 1.2 beta from http://www.javasoft.com.
|
|
|
|
* Status: Believed complete and correct.
|
|
|
|
* However, write(String, int, int) should be made a native method.
|
|
|
|
*/
|
|
|
|
|
|
|
|
public abstract class Writer
|
|
|
|
{
|
|
|
|
protected Object lock;
|
|
|
|
|
|
|
|
protected Writer ()
|
|
|
|
{
|
|
|
|
lock = this;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected Writer (Object lock)
|
|
|
|
{
|
|
|
|
this.lock = lock;
|
|
|
|
}
|
|
|
|
|
|
|
|
abstract public void close() throws IOException;
|
|
|
|
|
|
|
|
abstract public void flush() throws IOException;
|
|
|
|
|
|
|
|
abstract public void write(char[] buf, int offset, int count)
|
|
|
|
throws IOException;
|
|
|
|
|
|
|
|
public void write(char[] buf) throws IOException
|
|
|
|
{
|
|
|
|
write(buf, 0, buf.length);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void write(int ch) throws IOException
|
|
|
|
{
|
|
|
|
char[] buf = new char[1];
|
|
|
|
buf[0] = (char) ch;
|
|
|
|
write(buf, 0, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
// FIXME - re-write using native code to not require copied buffer.
|
|
|
|
public void write (String str, int offset, int count) throws IOException
|
|
|
|
{
|
|
|
|
char[] buf = new char[count];
|
|
|
|
str.getChars(offset, offset + count, buf, 0);
|
|
|
|
write(buf, 0, count);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void write (String str) throws IOException
|
|
|
|
{
|
|
|
|
write(str, 0, str.length());
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|