From f4f5d1d62161cc99ecfc68495d501342aa1e61dc Mon Sep 17 00:00:00 2001 From: Michael Koch Date: Tue, 18 Mar 2003 06:00:25 +0000 Subject: BufferedReader.java, [...]: Merged from classpath. 2003-03-18 Michael Koch * java/io/BufferedReader.java, java/io/BufferedWriter.java, java/io/ByteArrayOutputStream.java, java/io/FileFilter.java, java/io/FilePermission.java, java/io/FileReader.java, java/io/FileWriter.java, java/io/FilenameFilter.java, java/io/FilterInputStream.java, java/io/FilterOutputStream.java, java/io/FilterReader.java, java/io/FilterWriter.java, java/io/ObjectInput.java, java/io/ObjectInputValidation.java, java/io/ObjectOutput.java, java/io/ObjectStreamField.java, java/io/PipedInputStream.java, java/io/PipedReader.java, java/io/PrintWriter.java, java/io/PushbackReader.java, java/io/Reader.java, java/io/SerializablePermission.java, java/io/StringReader.java, java/io/Writer.java: Merged from classpath. From-SVN: r64525 --- libjava/java/io/Writer.java | 321 ++++++++++++++++++++++---------------------- 1 file changed, 157 insertions(+), 164 deletions(-) (limited to 'libjava/java/io/Writer.java') diff --git a/libjava/java/io/Writer.java b/libjava/java/io/Writer.java index b86e9c8b538..3b2cf79ffdc 100644 --- a/libjava/java/io/Writer.java +++ b/libjava/java/io/Writer.java @@ -1,5 +1,5 @@ /* Writer.java -- Base class for character output streams - Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -55,168 +55,161 @@ package java.io; */ public abstract class Writer { - -/*************************************************************************/ - -/** - * This is the object used to synchronize criticial code sections for - * thread safety. Subclasses should use this field instead of using - * synchronized methods or explicity synchronizations on this - */ -protected Object lock; - -/*************************************************************************/ - -/* - * Constructors - */ - -/** - * This is the default no-argument constructor for this class. This method - * will set up the class to synchronize criticial sections on itself. - */ -protected -Writer() -{ - lock = this; -} - -/*************************************************************************/ - -/** - * This method initializes a Writer that will synchronize - * on the specified Object. - * - * @param obj The Object to use for synchronizing critical - * sections - */ -protected -Writer(Object lock) -{ - this.lock = lock; -} - -/*************************************************************************/ - -/* - * Instance Methods - */ - -/** - * This method forces any data that may have been buffered to be written - * to the underlying output device. Please note that the host environment - * might perform its own buffering unbeknowst to Java. In that case, a - * write made (for example, to a disk drive) might be cached in OS - * buffers instead of actually being written to disk. - * - * @exception IOException If an error occurs - */ -public abstract void -flush() throws IOException; - -/*************************************************************************/ - -/** - * This method closes the stream. Any internal or native resources associated - * with this stream are freed. Any subsequent attempt to access the stream - * might throw an exception. - *

- * This method in this class does nothing. - * - * @exception IOException If an error occurs - */ -public abstract void -close() throws IOException; - -/*************************************************************************/ - -/** - * This method writes a single char to the output stream. - * - * @param b The char to be written to the output stream, passed as an int - * - * @exception IOException If an error occurs - */ -public void -write(int b) throws IOException -{ - char[] buf = new char[1]; - - buf[0] = (char)b; - write(buf, 0, buf.length); -} - -/*************************************************************************/ - -/** - * This method all the writes char from the passed array to the output stream. - * This method is equivalent to write(buf, 0, buf.length) which - * is exactly how it is implemented in this class. - * - * @param buf The array of char to write - * - * @exception IOException If an error occurs - */ -public void -write(char[] buf) throws IOException -{ - write(buf, 0, buf.length); -} - -/*************************************************************************/ - -/** - * This method writes len char from the specified array - * buf starting at index offset into the array. - *

- * Subclasses must provide an implementation of this abstract method. - * - * @param buf The array of char to write from - * @param offset The index into the array to start writing from - * @param len The number of char to write - * - * @exception IOException If an error occurs - */ -public abstract void -write(char[] buf, int offset, int len) throws IOException; - -/*************************************************************************/ - -/** - * This method writes all the characters in a String to the - * output. - * - * @param str The String whose chars are to be written. - * - * @param IOException If an error occurs - */ -public void -write(String str) throws IOException -{ - write(str, 0, str.length()); -} - -/*************************************************************************/ - -/** - * This method writes len chars from the String - * starting at position offset. - * - * @param str The String that is to be written - * @param offset The character offset into the String to start - * writing from - * @param len The number of chars to write - * - * @exception IOException If an error occurs - */ -public void -write(String str, int offset, int len) throws IOException -{ - // FIXME - for libgcj re-write using native code to not require copied buffer. - char[] buf = new char[len]; - - str.getChars(offset, offset + len, buf, 0); - write(buf, 0, len); -} + /** + * This is the object used to synchronize criticial code sections for + * thread safety. Subclasses should use this field instead of using + * synchronized methods or explicity synchronizations on this + */ + protected Object lock; + + /*************************************************************************/ + + /* + * Constructors + */ + + /** + * This is the default no-argument constructor for this class. This method + * will set up the class to synchronize criticial sections on itself. + */ + protected Writer() + { + lock = this; + } + + /*************************************************************************/ + + /** + * This method initializes a Writer that will synchronize + * on the specified Object. + * + * @param obj The Object to use for synchronizing critical + * sections + */ + protected Writer(Object lock) + { + this.lock = lock; + } + + /*************************************************************************/ + + /* + * Instance Methods + */ + + /** + * This method forces any data that may have been buffered to be written + * to the underlying output device. Please note that the host environment + * might perform its own buffering unbeknowst to Java. In that case, a + * write made (for example, to a disk drive) might be cached in OS + * buffers instead of actually being written to disk. + * + * @exception IOException If an error occurs + */ + public abstract void flush() throws IOException; + + /*************************************************************************/ + + /** + * This method closes the stream. Any internal or native resources + * associated + * with this stream are freed. Any subsequent attempt to access the stream + * might throw an exception. + *

+ * This method in this class does nothing. + * + * @exception IOException If an error occurs + */ + public abstract void close() throws IOException; + + /*************************************************************************/ + + /** + * This method writes a single char to the output stream. + * + * @param b The char to be written to the output stream, passed as an int + * + * @exception IOException If an error occurs + */ + public void write(int b) throws IOException + { + char[] buf = new char[1]; + + buf[0] = (char)b; + write(buf, 0, buf.length); + } + + /*************************************************************************/ + + /** + * This method all the writes char from the passed array to the output + * stream. This method is equivalent to + * write(buf, 0, buf.length) which + * is exactly how it is implemented in this class. + * + * @param buf The array of char to write + * + * @exception IOException If an error occurs + */ + public void write(char[] buf) throws IOException + { + write(buf, 0, buf.length); + } + + /*************************************************************************/ + + /** + * This method writes len char from the specified array + * buf starting at index offset into the array. + *

+ * Subclasses must provide an implementation of this abstract method. + * + * @param buf The array of char to write from + * @param offset The index into the array to start writing from + * @param len The number of char to write + * + * @exception IOException If an error occurs + */ + public abstract void write(char[] buf, int offset, int len) + throws IOException; + + /*************************************************************************/ + + /** + * This method writes all the characters in a String to the + * output. + * + * @param str The String whose chars are to be written. + * + * @param IOException If an error occurs + */ + public void write(String str) throws IOException + { + write(str, 0, str.length()); + } + + /*************************************************************************/ + + /** + * This method writes len chars from the String + * starting at position offset. + * + * @param str The String that is to be written + * @param offset The character offset into the String to start + * writing from + * @param len The number of chars to write + * + * @exception IOException If an error occurs + */ + public void write(String str, int offset, int len) throws IOException + { + // FIXME - for libgcj re-write using native code to not require + // copied buffer. + char[] buf = new char[len]; + + str.getChars(offset, offset + len, buf, 0); + write(buf, 0, len); + } } // class Writer + -- cgit v1.2.3