Commit fddab7dc by Michael Koch Committed by Michael Koch

BufferedOutputStream.java, [...]: More merges from classpath.

2003-03-18  Michael Koch  <konqueror@gmx.de>

	* java/io/BufferedOutputStream.java,
	java/io/DataInput.java,
	java/io/DataInputStream.java,
	java/io/DataOutput.java,
	java/io/Externalizable.java:
	More merges from classpath.

From-SVN: r64528
parent 71a15b15
2003-03-18 Michael Koch <konqueror@gmx.de> 2003-03-18 Michael Koch <konqueror@gmx.de>
* java/io/BufferedOutputStream.java,
java/io/DataInput.java,
java/io/DataInputStream.java,
java/io/DataOutput.java,
java/io/Externalizable.java:
More merges from classpath.
2003-03-18 Michael Koch <konqueror@gmx.de>
* configure.in: Fixed links to platform dependant java.net files. * configure.in: Fixed links to platform dependant java.net files.
* configure: Regenerated. * configure: Regenerated.
* java/net/natInetAddress.cc, * java/net/natInetAddress.cc,
......
...@@ -46,65 +46,59 @@ package java.io; ...@@ -46,65 +46,59 @@ package java.io;
* efficient mechanism for writing versus doing numerous small unbuffered * efficient mechanism for writing versus doing numerous small unbuffered
* writes. * writes.
* *
* @version 0.0
*
* @author Aaron M. Renn (arenn@urbanophile.com) * @author Aaron M. Renn (arenn@urbanophile.com)
*/ */
public class BufferedOutputStream extends FilterOutputStream public class BufferedOutputStream extends FilterOutputStream
{ {
/*
/*************************************************************************/
/*
* Class Variables * Class Variables
*/ */
/** /**
* This is the default buffer size * This is the default buffer size
*/ */
private static final int DEFAULT_BUFFER_SIZE = 512; private static final int DEFAULT_BUFFER_SIZE = 512;
/*************************************************************************/ /*************************************************************************/
/* /*
* Instance Variables * Instance Variables
*/ */
/** /**
* This is the internal byte array used for buffering output before * This is the internal byte array used for buffering output before
* writing it. * writing it.
*/ */
protected byte[] buf; protected byte[] buf;
/** /**
* This is the number of bytes that are currently in the buffer and * This is the number of bytes that are currently in the buffer and
* are waiting to be written to the underlying stream. It always points to * are waiting to be written to the underlying stream. It always points to
* the index into the buffer where the next byte of data will be stored * the index into the buffer where the next byte of data will be stored
*/ */
protected int count; protected int count;
/*************************************************************************/ /*************************************************************************/
/* /*
* Constructors * Constructors
*/ */
/** /**
* This method initializes a new <code>BufferedOutputStream</code> instance * This method initializes a new <code>BufferedOutputStream</code> instance
* that will write to the specified subordinate <code>OutputStream</code> * that will write to the specified subordinate <code>OutputStream</code>
* and which will use a default buffer size of 512 bytes. * and which will use a default buffer size of 512 bytes.
* *
* @param out The underlying <code>OutputStream</code> to write data to * @param out The underlying <code>OutputStream</code> to write data to
*/ */
public public BufferedOutputStream(OutputStream out)
BufferedOutputStream(OutputStream out) {
{
this(out, DEFAULT_BUFFER_SIZE); this(out, DEFAULT_BUFFER_SIZE);
} }
/*************************************************************************/ /*************************************************************************/
/** /**
* This method initializes a new <code>BufferedOutputStream</code> instance * This method initializes a new <code>BufferedOutputStream</code> instance
* that will write to the specified subordinate <code>OutputStream</code> * that will write to the specified subordinate <code>OutputStream</code>
* and which will use the specified buffer size * and which will use the specified buffer size
...@@ -112,71 +106,67 @@ BufferedOutputStream(OutputStream out) ...@@ -112,71 +106,67 @@ BufferedOutputStream(OutputStream out)
* @param out The underlying <code>OutputStream</code> to write data to * @param out The underlying <code>OutputStream</code> to write data to
* @param size The size of the internal buffer * @param size The size of the internal buffer
*/ */
public public BufferedOutputStream(OutputStream out, int size)
BufferedOutputStream(OutputStream out, int size) {
{
super(out); super(out);
buf = new byte[size]; buf = new byte[size];
} }
/*************************************************************************/ /*************************************************************************/
/* /*
* Instance Methods * Instance Methods
*/ */
/** /**
* This method causes any currently buffered bytes to be immediately * This method causes any currently buffered bytes to be immediately
* written to the underlying output stream. * written to the underlying output stream.
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
public synchronized void public synchronized void flush() throws IOException
flush() throws IOException {
{
if (count == 0) if (count == 0)
return; return;
out.write(buf, 0, count); out.write(buf, 0, count);
count = 0; count = 0;
out.flush(); out.flush();
} }
/*************************************************************************/ /*************************************************************************/
/* /*
* This method flushes any remaining buffered bytes then closes the * This method flushes any remaining buffered bytes then closes the
* underlying output stream. Any further attempts to write to this stream * underlying output stream. Any further attempts to write to this stream
* may throw an exception * may throw an exception
* *
public synchronized void public synchronized void close() throws IOException
close() throws IOException {
{
flush(); flush();
out.close(); out.close();
} }
*/ */
/*************************************************************************/ /*************************************************************************/
/* /*
* This method runs when the object is garbage collected. It is * This method runs when the object is garbage collected. It is
* responsible for ensuring that all buffered bytes are written and * responsible for ensuring that all buffered bytes are written and
* for closing the underlying stream. * for closing the underlying stream.
* *
* @exception IOException If an error occurs (ignored by the Java runtime) * @exception IOException If an error occurs (ignored by the Java runtime)
* *
protected void protected void finalize() throws IOException
finalize() throws IOException {
{
close(); close();
} }
*/ */
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes a single byte of data. This will be written to the * This method writes a single byte of data. This will be written to the
* buffer instead of the underlying data source. However, if the buffer * buffer instead of the underlying data source. However, if the buffer
* is filled as a result of this write request, it will be flushed to the * is filled as a result of this write request, it will be flushed to the
...@@ -186,19 +176,18 @@ finalize() throws IOException ...@@ -186,19 +176,18 @@ finalize() throws IOException
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
public synchronized void public synchronized void write(int b) throws IOException
write(int b) throws IOException {
{
if (count == buf.length) if (count == buf.length)
flush(); flush();
buf[count] = (byte)(b & 0xFF); buf[count] = (byte)(b & 0xFF);
++count; ++count;
} }
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes <code>len</code> bytes from the byte array * This method writes <code>len</code> bytes from the byte array
* <code>buf</code> starting at position <code>offset</code> in the buffer. * <code>buf</code> starting at position <code>offset</code> in the buffer.
* These bytes will be written to the internal buffer. However, if this * These bytes will be written to the internal buffer. However, if this
...@@ -211,9 +200,9 @@ write(int b) throws IOException ...@@ -211,9 +200,9 @@ write(int b) throws IOException
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
public synchronized void public synchronized void write(byte[] buf, int offset, int len)
write(byte[] buf, int offset, int len) throws IOException throws IOException
{ {
// Buffer can hold everything. Note that the case where LEN < 0 // Buffer can hold everything. Note that the case where LEN < 0
// is automatically handled by the downstream write. // is automatically handled by the downstream write.
if (len < (this.buf.length - count)) if (len < (this.buf.length - count))
...@@ -229,6 +218,7 @@ write(byte[] buf, int offset, int len) throws IOException ...@@ -229,6 +218,7 @@ write(byte[] buf, int offset, int len) throws IOException
flush(); flush();
out.write (buf, offset, len); out.write (buf, offset, len);
} }
} }
} // class BufferedOutputStream } // class BufferedOutputStream
/* DataInputStream.java -- FilteredInputStream that implements DataInput /* DataInputStream.java -- FilteredInputStream that implements DataInput
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation
This file is part of GNU Classpath. This file is part of GNU Classpath.
...@@ -50,8 +50,6 @@ package java.io; ...@@ -50,8 +50,6 @@ package java.io;
* *
* @see DataInput * @see DataInput
* *
* @version 0.0
*
* @author Warren Levy <warrenl@cygnus.com> * @author Warren Levy <warrenl@cygnus.com>
* @author Aaron M. Renn (arenn@urbanophile.com) * @author Aaron M. Renn (arenn@urbanophile.com)
* @date October 20, 1998. * @date October 20, 1998.
......
...@@ -53,127 +53,117 @@ package java.io; ...@@ -53,127 +53,117 @@ package java.io;
public interface DataOutput public interface DataOutput
{ {
/** /**
* This method writes a Java boolean value to an output stream * This method writes a Java boolean value to an output stream
* *
* @param value The boolean value to write * @param value The boolean value to write
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void writeBoolean(boolean value) throws IOException;
writeBoolean(boolean value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes a Java byte value to an output stream * This method writes a Java byte value to an output stream
* *
* @param value The int value to write * @param value The int value to write
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void writeByte(int value) throws IOException;
writeByte(int value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes a Java char value to an output stream * This method writes a Java char value to an output stream
* *
* @param value The char value to write * @param value The char value to write
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void writeChar(int value) throws IOException;
writeChar(int value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes a Java int value to an output stream as a 16 bit value * This method writes a Java int value to an output stream as a 16 bit value
* *
* @param value The int value to write as a 16-bit value * @param value The int value to write as a 16-bit value
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void writeShort(int value) throws IOException;
writeShort(int value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes a Java int value to an output stream * This method writes a Java int value to an output stream
* *
* @param value The int value to write * @param value The int value to write
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void writeInt(int value) throws IOException;
writeInt(int value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes a Java long value to an output stream * This method writes a Java long value to an output stream
* *
* @param value The long value to write * @param value The long value to write
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void writeLong(long value) throws IOException;
writeLong(long value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes a Java float value to an output stream * This method writes a Java float value to an output stream
* *
* @param value The float value to write * @param value The float value to write
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void writeFloat(float value) throws IOException;
writeFloat(float value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes a Java double value to an output stream * This method writes a Java double value to an output stream
* *
* @param value The double value to write * @param value The double value to write
* *
* @exception IOException If any other error occurs * @exception IOException If any other error occurs
*/ */
void void writeDouble(double value) throws IOException;
writeDouble(double value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes a String to an output stream as an array of bytes * This method writes a String to an output stream as an array of bytes
* *
* @param value The String to write * @param value The String to write
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void writeBytes(String value) throws IOException;
writeBytes(String value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes a String to an output stream as an array of char's * This method writes a String to an output stream as an array of char's
* *
* @param value The String to write * @param value The String to write
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void writeChars(String value) throws IOException;
writeChars(String value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes a String to an output stream encoded in * This method writes a String to an output stream encoded in
* UTF-8 format. * UTF-8 format.
* *
...@@ -181,12 +171,11 @@ writeChars(String value) throws IOException; ...@@ -181,12 +171,11 @@ writeChars(String value) throws IOException;
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void writeUTF(String value) throws IOException;
writeUTF(String value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes an 8-bit value (passed into the method as a Java * This method writes an 8-bit value (passed into the method as a Java
* int) to an output stream. * int) to an output stream.
* *
...@@ -194,35 +183,35 @@ writeUTF(String value) throws IOException; ...@@ -194,35 +183,35 @@ writeUTF(String value) throws IOException;
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void write(int value) throws IOException;
write(int value) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes the raw byte array passed in to the output stream. * This method writes the raw byte array passed in to the output stream.
* *
* @param buf The byte array to write * @param buf The byte array to write
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
void void write(byte[] buf) throws IOException;
write(byte[] buf) throws IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method writes raw bytes from the passed array <code>buf</code> starting * This method writes raw bytes from the passed array <code>buf</code>
* <code>offset</code> bytes into the buffer. The number of bytes written will be * starting
* exactly <code>len</code>. * <code>offset</code> bytes into the buffer. The number of bytes
* written will be * exactly <code>len</code>.
* *
* @param buf The buffer from which to write the data * @param buf The buffer from which to write the data
* @param offset The offset into the buffer to start writing data from * @param offset The offset into the buffer to start writing data from
* @param len The number of bytes to write from the buffer to the output stream * @param len The number of bytes to write from the buffer to the output
* stream
* *
* @exception IOException If any other error occurs * @exception IOException If any other error occurs
*/ */
void void write(byte[] buf, int offset, int len) throws IOException;
write(byte[] buf, int offset, int len) throws IOException;
} // interface DataOutput } // interface DataOutput
...@@ -56,19 +56,19 @@ package java.io; ...@@ -56,19 +56,19 @@ package java.io;
* created using the default no-argument constructor and the * created using the default no-argument constructor and the
* <code>readExternal</code> method is used to restore the state. * <code>readExternal</code> method is used to restore the state.
* *
* @version 0.0
*
* @author Aaron M. Renn (arenn@urbanophile.com) * @author Aaron M. Renn (arenn@urbanophile.com)
*/ */
public interface Externalizable extends Serializable public interface Externalizable extends Serializable
{ {
static final long serialVersionUID = -282491828744381764L; static final long serialVersionUID = -282491828744381764L;
/** /**
* This method restores an object's state by reading in the instance data * This method restores an object's state by reading in the instance data
* for the object from the passed in stream. Note that this stream is not * for the object from the passed in stream. Note that this stream is not
* a subclass of <code>InputStream</code>, but rather is a class that implements * a subclass of <code>InputStream</code>, but rather is a class that
* the <code>ObjectInput</code> interface. That interface provides a mechanism for * implements
* the <code>ObjectInput</code> interface. That interface provides a
* mechanism for
* reading in Java data types from a stream. * reading in Java data types from a stream.
* <p> * <p>
* Note that this method must be compatible with <code>writeExternal</code>. * Note that this method must be compatible with <code>writeExternal</code>.
...@@ -79,32 +79,35 @@ public interface Externalizable extends Serializable ...@@ -79,32 +79,35 @@ public interface Externalizable extends Serializable
* for that object must be found and loaded. If that operation fails, * for that object must be found and loaded. If that operation fails,
* then this method throws a <code>ClassNotFoundException</code> * then this method throws a <code>ClassNotFoundException</code>
* *
* @param in An <code>ObjectInput</code> instance for reading in the object state * @param in An <code>ObjectInput</code> instance for reading in the object
* state
* *
* @exception ClassNotFoundException If the class of an object being restored cannot be found * @exception ClassNotFoundException If the class of an object being
* restored cannot be found
* @exception IOException If any other error occurs * @exception IOException If any other error occurs
*/ */
public abstract void public abstract void readExternal(ObjectInput in)
readExternal(ObjectInput in) throws ClassNotFoundException, IOException; throws ClassNotFoundException, IOException;
/*************************************************************************/ /*************************************************************************/
/** /**
* This method is responsible for writing the instance data of an object * This method is responsible for writing the instance data of an object
* to the passed in stream. Note that this stream is not a subclass of * to the passed in stream. Note that this stream is not a subclass of
* <code>OutputStream</code>, but rather is a class that implements the * <code>OutputStream</code>, but rather is a class that implements the
* <code>ObjectOutput</code> interface. That interface provides a number of methods * <code>ObjectOutput</code> interface. That interface provides a
* number of methods
* for writing Java data values to a stream. * for writing Java data values to a stream.
* <p> * <p>
* Not that the implementation of this method must be coordinated with * Not that the implementation of this method must be coordinated with
* the implementation of <code>readExternal</code>. * the implementation of <code>readExternal</code>.
* *
* @param out An <code>ObjectOutput</code> instance for writing the object state * @param out An <code>ObjectOutput</code> instance for writing the
* object state
* *
* @exception IOException If an error occurs * @exception IOException If an error occurs
*/ */
public abstract void public abstract void writeExternal(ObjectOutput out) throws IOException;
writeExternal(ObjectOutput out) throws IOException;
} // interface Externalizable } // interface Externalizable
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment