You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by nd...@apache.org on 2006/08/18 03:45:39 UTC
svn commit: r432462 [2/21] -
/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataInput.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataInput.java?rev=432462&r1=432461&r2=432462&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataInput.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataInput.java Thu Aug 17 18:45:35 2006
@@ -1,230 +1,230 @@
-/* Copyright 1998, 2004 The Apache Software Foundation or its licensors, as applicable
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package java.io;
-
-
-/**
- * DataInput is an interface which declares methods for reading in typed data
- * from a Stream. Typically, this stream has been written by a class which
- * implements DataOutput. Types that can be read include byte, 16-bit short,
- * 32-bit int, 32-bit float, 64-bit long, 64-bit double, byte strings, and UTF
- * Strings.
- *
- * @see DataInputStream
- * @see RandomAccessFile
- */
-public interface DataInput {
- /**
- * Reads a boolean from this stream.
- *
- * @return the next boolean value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#writeBoolean(boolean)
- */
- public abstract boolean readBoolean() throws IOException;
-
- /**
- * Reads an 8-bit byte value from this stream.
- *
- * @return the next byte value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#writeByte(int)
- */
- public abstract byte readByte() throws IOException;
-
- /**
- * Reads a 16-bit character value from this stream.
- *
- * @return the next <code>char</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#writeChar(int)
- */
- public abstract char readChar() throws IOException;
-
- /**
- * Reads a 64-bit <code>double</code> value from this stream.
- *
- * @return the next <code>double</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#writeDouble(double)
- */
- public abstract double readDouble() throws IOException;
-
- /**
- * Reads a 32-bit <code>float</code> value from this stream.
- *
- * @return the next <code>float</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#writeFloat(float)
- */
- public abstract float readFloat() throws IOException;
-
- /**
- * Reads bytes from this stream into the byte array <code>buffer</code>.
- * This method will block until <code>buffer.length</code> number of bytes
- * have been read.
- *
- * @param buffer
- * the buffer to read bytes into
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#write(byte[])
- * @see DataOutput#write(byte[], int, int)
- */
- public abstract void readFully(byte[] buffer) throws IOException;
-
- /**
- * Read bytes from this stream and stores them in byte array
- * <code>buffer</code> starting at offset <code>offset</code>. This
- * method blocks until <code>count</code> number of bytes have been read.
- *
- * @param buffer
- * the byte array in which to store the read bytes.
- * @param offset
- * the offset in <code>buffer</code> to store the read bytes.
- * @param count
- * the maximum number of bytes to store in <code>buffer</code>.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#write(byte[])
- * @see DataOutput#write(byte[], int, int)
- */
- public abstract void readFully(byte[] buffer, int offset, int count)
- throws IOException;
-
- /**
- * Reads a 32-bit integer value from this stream.
- *
- * @return the next <code>int</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#writeInt(int)
- */
- public abstract int readInt() throws IOException;
-
- /**
- * Answers a <code>String</code> representing the next line of text
- * available in this BufferedReader. A line is represented by 0 or more
- * characters followed by <code>'\n'</code>, <code>'\r'</code>,
- * <code>"\n\r"</code> or end of stream. The <code>String</code> does
- * not include the newline sequence.
- *
- * @return the contents of the line or null if no characters were read
- * before end of stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- */
- public abstract String readLine() throws IOException;
-
- /**
- * Reads a 64-bit <code>long</code> value from this stream.
- *
- * @return the next <code>long</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#writeLong(long)
- */
- public abstract long readLong() throws IOException;
-
- /**
- * Reads a 16-bit <code>short</code> value from this stream.
- *
- * @return the next <code>short</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#writeShort(int)
- */
- public abstract short readShort() throws IOException;
-
- /**
- * Reads an unsigned 8-bit <code>byte</code> value from this stream and
- * returns it as an int.
- *
- * @return the next unsigned byte value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#writeByte(int)
- */
- public abstract int readUnsignedByte() throws IOException;
-
- /**
- * Reads a 16-bit unsigned <code>short</code> value from this stream and
- * returns it as an int.
- *
- * @return the next unsigned <code>short</code> value from the source
- * stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#writeShort(int)
- */
- public abstract int readUnsignedShort() throws IOException;
-
- /**
- * Reads a UTF format String from this Stream.
- *
- * @return the next UTF String from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- *
- * @see DataOutput#writeUTF(java.lang.String)
- */
- public abstract String readUTF() throws IOException;
-
- /**
- * Skips <code>count</code> number of bytes in this stream. Subsequent
- * <code>read()</code>'s will not return these bytes unless
- * <code>reset()</code> is used.
- *
- * @param count
- * the number of bytes to skip.
- * @return the number of bytes actually skipped.
- *
- * @throws IOException
- * If a problem occurs reading from this stream.
- */
- public abstract int skipBytes(int count) throws IOException;
-}
+/* Copyright 1998, 2004 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.io;
+
+
+/**
+ * DataInput is an interface which declares methods for reading in typed data
+ * from a Stream. Typically, this stream has been written by a class which
+ * implements DataOutput. Types that can be read include byte, 16-bit short,
+ * 32-bit int, 32-bit float, 64-bit long, 64-bit double, byte strings, and UTF
+ * Strings.
+ *
+ * @see DataInputStream
+ * @see RandomAccessFile
+ */
+public interface DataInput {
+ /**
+ * Reads a boolean from this stream.
+ *
+ * @return the next boolean value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#writeBoolean(boolean)
+ */
+ public abstract boolean readBoolean() throws IOException;
+
+ /**
+ * Reads an 8-bit byte value from this stream.
+ *
+ * @return the next byte value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#writeByte(int)
+ */
+ public abstract byte readByte() throws IOException;
+
+ /**
+ * Reads a 16-bit character value from this stream.
+ *
+ * @return the next <code>char</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#writeChar(int)
+ */
+ public abstract char readChar() throws IOException;
+
+ /**
+ * Reads a 64-bit <code>double</code> value from this stream.
+ *
+ * @return the next <code>double</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#writeDouble(double)
+ */
+ public abstract double readDouble() throws IOException;
+
+ /**
+ * Reads a 32-bit <code>float</code> value from this stream.
+ *
+ * @return the next <code>float</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#writeFloat(float)
+ */
+ public abstract float readFloat() throws IOException;
+
+ /**
+ * Reads bytes from this stream into the byte array <code>buffer</code>.
+ * This method will block until <code>buffer.length</code> number of bytes
+ * have been read.
+ *
+ * @param buffer
+ * the buffer to read bytes into
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#write(byte[])
+ * @see DataOutput#write(byte[], int, int)
+ */
+ public abstract void readFully(byte[] buffer) throws IOException;
+
+ /**
+ * Read bytes from this stream and stores them in byte array
+ * <code>buffer</code> starting at offset <code>offset</code>. This
+ * method blocks until <code>count</code> number of bytes have been read.
+ *
+ * @param buffer
+ * the byte array in which to store the read bytes.
+ * @param offset
+ * the offset in <code>buffer</code> to store the read bytes.
+ * @param count
+ * the maximum number of bytes to store in <code>buffer</code>.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#write(byte[])
+ * @see DataOutput#write(byte[], int, int)
+ */
+ public abstract void readFully(byte[] buffer, int offset, int count)
+ throws IOException;
+
+ /**
+ * Reads a 32-bit integer value from this stream.
+ *
+ * @return the next <code>int</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#writeInt(int)
+ */
+ public abstract int readInt() throws IOException;
+
+ /**
+ * Answers a <code>String</code> representing the next line of text
+ * available in this BufferedReader. A line is represented by 0 or more
+ * characters followed by <code>'\n'</code>, <code>'\r'</code>,
+ * <code>"\n\r"</code> or end of stream. The <code>String</code> does
+ * not include the newline sequence.
+ *
+ * @return the contents of the line or null if no characters were read
+ * before end of stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ */
+ public abstract String readLine() throws IOException;
+
+ /**
+ * Reads a 64-bit <code>long</code> value from this stream.
+ *
+ * @return the next <code>long</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#writeLong(long)
+ */
+ public abstract long readLong() throws IOException;
+
+ /**
+ * Reads a 16-bit <code>short</code> value from this stream.
+ *
+ * @return the next <code>short</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#writeShort(int)
+ */
+ public abstract short readShort() throws IOException;
+
+ /**
+ * Reads an unsigned 8-bit <code>byte</code> value from this stream and
+ * returns it as an int.
+ *
+ * @return the next unsigned byte value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#writeByte(int)
+ */
+ public abstract int readUnsignedByte() throws IOException;
+
+ /**
+ * Reads a 16-bit unsigned <code>short</code> value from this stream and
+ * returns it as an int.
+ *
+ * @return the next unsigned <code>short</code> value from the source
+ * stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#writeShort(int)
+ */
+ public abstract int readUnsignedShort() throws IOException;
+
+ /**
+ * Reads a UTF format String from this Stream.
+ *
+ * @return the next UTF String from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ *
+ * @see DataOutput#writeUTF(java.lang.String)
+ */
+ public abstract String readUTF() throws IOException;
+
+ /**
+ * Skips <code>count</code> number of bytes in this stream. Subsequent
+ * <code>read()</code>'s will not return these bytes unless
+ * <code>reset()</code> is used.
+ *
+ * @param count
+ * the number of bytes to skip.
+ * @return the number of bytes actually skipped.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this stream.
+ */
+ public abstract int skipBytes(int count) throws IOException;
+}
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataInput.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataInputStream.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataInputStream.java?rev=432462&r1=432461&r2=432462&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataInputStream.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataInputStream.java Thu Aug 17 18:45:35 2006
@@ -1,471 +1,471 @@
-/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package java.io;
-
-
-/**
- * DataInputStream is a filter class which can read typed data from a Stream.
- * Typically, this stream has been written by a DataOutputStream. Types that can
- * be read include byte, 16-bit short, 32-bit int, 32-bit float, 64-bit long,
- * 64-bit double, byte strings, and UTF Strings.
- *
- * @see DataOutputStream
- */
-public class DataInputStream extends FilterInputStream implements DataInput {
- /**
- * Constructs a new DataInputStream on the InputStream <code>in</code>.
- * All reads can now be filtered through this stream. Note that data read by
- * this Stream is not in a human readable format and was most likely created
- * by a DataOutputStream.
- *
- * @param in
- * the target InputStream to filter reads on.
- *
- * @see DataOutputStream
- * @see RandomAccessFile
- */
- public DataInputStream(InputStream in) {
- super(in);
- }
-
- /**
- * Reads bytes from the source stream into the byte array
- * <code>buffer</code>. The number of bytes actually read is returned.
- *
- * @param buffer
- * the buffer to read bytes into
- * @return the number of bytes actually read or -1 if end of stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#write(byte[])
- * @see DataOutput#write(byte[], int, int)
- */
- public final int read(byte[] buffer) throws IOException {
- return in.read(buffer, 0, buffer.length);
- }
-
- /**
- * Read at most <code>length</code> bytes from this DataInputStream and
- * stores them in byte array <code>buffer</code> starting at
- * <code>offset</code>. Answer the number of bytes actually read or -1 if
- * no bytes were read and end of stream was encountered.
- *
- * @param buffer
- * the byte array in which to store the read bytes.
- * @param offset
- * the offset in <code>buffer</code> to store the read bytes.
- * @param length
- * the maximum number of bytes to store in <code>buffer</code>.
- * @return the number of bytes actually read or -1 if end of stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#write(byte[])
- * @see DataOutput#write(byte[], int, int)
- */
- public final int read(byte[] buffer, int offset, int length)
- throws IOException {
- return in.read(buffer, offset, length);
- }
-
- /**
- * Reads a boolean from this stream.
- *
- * @return the next boolean value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeBoolean(boolean)
- */
- public final boolean readBoolean() throws IOException {
- int temp = in.read();
- if (temp >= 0)
- return temp != 0;
- throw new EOFException();
- }
-
- /**
- * Reads an 8-bit byte value from this stream.
- *
- * @return the next byte value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeByte(int)
- */
- public final byte readByte() throws IOException {
- int temp = in.read();
- if (temp >= 0)
- return (byte) temp;
- throw new EOFException();
- }
-
- /**
- * Reads a 16-bit character value from this stream.
- *
- * @return the next <code>char</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeChar(int)
- */
- public final char readChar() throws IOException {
- int b1 = in.read();
- int b2 = in.read();
- if ((b1 | b2) >= 0)
- return (char) ((b1 << 8) + b2);
- throw new EOFException();
- }
-
- /**
- * Reads a 64-bit <code>double</code> value from this stream.
- *
- * @return the next <code>double</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeDouble(double)
- */
- public final double readDouble() throws IOException {
- return Double.longBitsToDouble(readLong());
- }
-
- /**
- * Reads a 32-bit <code>float</code> value from this stream.
- *
- * @return the next <code>float</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeFloat(float)
- */
- public final float readFloat() throws IOException {
- return Float.intBitsToFloat(readInt());
- }
-
- /**
- * Reads bytes from this stream into the byte array <code>buffer</code>.
- * This method will block until <code>buffer.length</code> number of bytes
- * have been read.
- *
- * @param buffer
- * to read bytes into
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#write(byte[])
- * @see DataOutput#write(byte[], int, int)
- */
- public final void readFully(byte[] buffer) throws IOException {
- readFully(buffer, 0, buffer.length);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.io.DataInput#readFully(byte[], int, int)
- */
- public final void readFully(byte[] buffer, int offset, int length)
- throws IOException {
- if (buffer != null) {
- // avoid int overflow
- if (0 <= offset && offset <= buffer.length && 0 <= length
- && length <= buffer.length - offset) {
- while (length > 0) {
- int result = in.read(buffer, offset, length);
- if (result >= 0) {
- offset += result;
- length -= result;
- } else
- throw new EOFException();
- }
- } else
- throw new IndexOutOfBoundsException();
- } else
- throw new NullPointerException(org.apache.harmony.luni.util.Msg
- .getString("K0047")); //$NON-NLS-1$
- }
-
- /**
- * Reads a 32-bit integer value from this stream.
- *
- * @return the next <code>int</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeInt(int)
- */
- public final int readInt() throws IOException {
- int b1 = in.read();
- int b2 = in.read();
- int b3 = in.read();
- int b4 = in.read();
- if ((b1 | b2 | b3 | b4) >= 0)
- return ((b1 << 24) + (b2 << 16) + (b3 << 8) + b4);
- throw new EOFException();
- }
-
- /**
- * Answers a <code>String</code> representing the next line of text
- * available in this BufferedReader. A line is represented by 0 or more
- * characters followed by <code>'\n'</code>, <code>'\r'</code>,
- * <code>"\n\r"</code> or end of stream. The <code>String</code> does
- * not include the newline sequence.
- *
- * @return the contents of the line or null if no characters were read
- * before end of stream.
- *
- * @throws IOException
- * If the DataInputStream is already closed or some other IO
- * error occurs.
- *
- * @deprecated Use BufferedReader
- */
- public final String readLine() throws IOException {
- StringBuffer line = new StringBuffer(80); // Typical line length
- boolean foundTerminator = false;
- while (true) {
- int nextByte = in.read();
- switch (nextByte) {
- case -1:
- if (line.length() == 0 && !foundTerminator)
- return null;
- return line.toString();
- case (byte) '\r':
- if (foundTerminator) {
- ((PushbackInputStream) in).unread(nextByte);
- return line.toString();
- }
- foundTerminator = true;
- /* Have to be able to peek ahead one byte */
- if (!(in.getClass() == PushbackInputStream.class))
- in = new PushbackInputStream(in);
- break;
- case (byte) '\n':
- return line.toString();
- default:
- if (foundTerminator) {
- ((PushbackInputStream) in).unread(nextByte);
- return line.toString();
- }
- line.append((char) nextByte);
- }
- }
- }
-
- /**
- * Reads a 64-bit <code>long</code> value from this stream.
- *
- * @return the next <code>long</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeLong(long)
- */
- public final long readLong() throws IOException {
- int i1 = readInt();
- int b1 = in.read();
- int b2 = in.read();
- int b3 = in.read();
- int b4 = in.read();
- if ((b1 | b2 | b3 | b4) >= 0)
- return (((long) i1) << 32) + ((long) b1 << 24) + (b2 << 16)
- + (b3 << 8) + b4;
- throw new EOFException();
- }
-
- /**
- * Reads a 16-bit <code>short</code> value from this stream.
- *
- * @return the next <code>short</code> value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeShort(int)
- */
- public final short readShort() throws IOException {
- int b1 = in.read();
- int b2 = in.read();
- if ((b1 | b2) >= 0)
- return (short) ((b1 << 8) + b2);
- throw new EOFException();
- }
-
- /**
- * Reads an unsigned 8-bit <code>byte</code> value from this stream and
- * returns it as an int.
- *
- * @return the next unsigned byte value from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeByte(int)
- */
- public final int readUnsignedByte() throws IOException {
- int temp = in.read();
- if (temp >= 0)
- return temp;
- throw new EOFException();
- }
-
- /**
- * Reads a 16-bit unsigned <code>short</code> value from this stream and
- * returns it as an int.
- *
- * @return the next unsigned <code>short</code> value from the source
- * stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeShort(int)
- */
- public final int readUnsignedShort() throws IOException {
- int b1 = in.read();
- int b2 = in.read();
- if ((b1 | b2) >= 0)
- return ((b1 << 8) + b2);
- throw new EOFException();
- }
-
- /**
- * Reads a UTF format String from this Stream.
- *
- * @return the next UTF String from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeUTF(java.lang.String)
- */
- public final String readUTF() throws IOException {
- int utfSize = readUnsignedShort();
- return decodeUTF(utfSize);
- }
-
- static final int MAX_BUF_SIZE = 8192;
-
- static final Object cacheLock = new Object();
-
- static boolean useShared = true;
-
- static byte[] byteBuf = new byte[0];
-
- static char[] charBuf = new char[0];
-
- String decodeUTF(int utfSize) throws IOException {
- byte[] buf;
- char[] out = null;
- boolean makeBuf = true;
-
- /*
- * Try to avoid the synchronization -- if we get a stale value for
- * useShared then there is no foul below, but those that sync on the
- * lock must see the right value.
- */
- if (utfSize <= MAX_BUF_SIZE && useShared) {
- synchronized (cacheLock) {
- if (useShared) {
- useShared = false;
- makeBuf = false;
- }
- }
- }
- if (makeBuf) {
- buf = new byte[utfSize];
- out = new char[utfSize];
- } else {
- /*
- * Need to 'sample' byteBuf and charBuf before using them because
- * they are not protected by the cacheLock. They may get out of sync
- * with the static and one another, but that is ok because we
- * explicitly check and fix their length after sampling.
- */
- buf = byteBuf;
- if (buf.length < utfSize)
- buf = byteBuf = new byte[utfSize];
- out = charBuf;
- if (out.length < utfSize) {
- out = charBuf = new char[utfSize];
- }
- }
-
- readFully(buf, 0, utfSize);
- String result;
- result = org.apache.harmony.luni.util.Util.convertUTF8WithBuf(buf, out, 0, utfSize);
- if (!makeBuf) {
- /*
- * Do not synchronize useShared on cacheLock, it will make it back
- * to main storage at some point, and no harm until it does.
- */
- useShared = true;
- }
- return result;
- }
-
- /**
- * Reads a UTF format String from the DataInput Stream <code>in</code>.
- *
- * @param in
- * the input stream to read from
- * @return the next UTF String from the source stream.
- *
- * @throws IOException
- * If a problem occurs reading from this DataInputStream.
- *
- * @see DataOutput#writeUTF(java.lang.String)
- */
- public static final String readUTF(DataInput in) throws IOException {
- return in.readUTF();
- }
-
- /**
- * Skips <code>count</code> number of bytes in this stream. Subsequent
- * <code>read()</code>'s will not return these bytes unless
- * <code>reset()</code> is used.
- *
- * @param count
- * the number of bytes to skip.
- * @return the number of bytes actually skipped.
- *
- * @throws IOException
- * If the stream is already closed or another IOException
- * occurs.
- */
- public final int skipBytes(int count) throws IOException {
- int skipped = 0;
- long skip;
- while (skipped < count && (skip = in.skip(count - skipped)) != 0)
- skipped += skip;
- if (skipped >= 0)
- return skipped;
- throw new EOFException();
- }
-
-}
+/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.io;
+
+
+/**
+ * DataInputStream is a filter class which can read typed data from a Stream.
+ * Typically, this stream has been written by a DataOutputStream. Types that can
+ * be read include byte, 16-bit short, 32-bit int, 32-bit float, 64-bit long,
+ * 64-bit double, byte strings, and UTF Strings.
+ *
+ * @see DataOutputStream
+ */
+public class DataInputStream extends FilterInputStream implements DataInput {
+ /**
+ * Constructs a new DataInputStream on the InputStream <code>in</code>.
+ * All reads can now be filtered through this stream. Note that data read by
+ * this Stream is not in a human readable format and was most likely created
+ * by a DataOutputStream.
+ *
+ * @param in
+ * the target InputStream to filter reads on.
+ *
+ * @see DataOutputStream
+ * @see RandomAccessFile
+ */
+ public DataInputStream(InputStream in) {
+ super(in);
+ }
+
+ /**
+ * Reads bytes from the source stream into the byte array
+ * <code>buffer</code>. The number of bytes actually read is returned.
+ *
+ * @param buffer
+ * the buffer to read bytes into
+ * @return the number of bytes actually read or -1 if end of stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#write(byte[])
+ * @see DataOutput#write(byte[], int, int)
+ */
+ public final int read(byte[] buffer) throws IOException {
+ return in.read(buffer, 0, buffer.length);
+ }
+
+ /**
+ * Read at most <code>length</code> bytes from this DataInputStream and
+ * stores them in byte array <code>buffer</code> starting at
+ * <code>offset</code>. Answer the number of bytes actually read or -1 if
+ * no bytes were read and end of stream was encountered.
+ *
+ * @param buffer
+ * the byte array in which to store the read bytes.
+ * @param offset
+ * the offset in <code>buffer</code> to store the read bytes.
+ * @param length
+ * the maximum number of bytes to store in <code>buffer</code>.
+ * @return the number of bytes actually read or -1 if end of stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#write(byte[])
+ * @see DataOutput#write(byte[], int, int)
+ */
+ public final int read(byte[] buffer, int offset, int length)
+ throws IOException {
+ return in.read(buffer, offset, length);
+ }
+
+ /**
+ * Reads a boolean from this stream.
+ *
+ * @return the next boolean value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeBoolean(boolean)
+ */
+ public final boolean readBoolean() throws IOException {
+ int temp = in.read();
+ if (temp >= 0)
+ return temp != 0;
+ throw new EOFException();
+ }
+
+ /**
+ * Reads an 8-bit byte value from this stream.
+ *
+ * @return the next byte value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeByte(int)
+ */
+ public final byte readByte() throws IOException {
+ int temp = in.read();
+ if (temp >= 0)
+ return (byte) temp;
+ throw new EOFException();
+ }
+
+ /**
+ * Reads a 16-bit character value from this stream.
+ *
+ * @return the next <code>char</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeChar(int)
+ */
+ public final char readChar() throws IOException {
+ int b1 = in.read();
+ int b2 = in.read();
+ if ((b1 | b2) >= 0)
+ return (char) ((b1 << 8) + b2);
+ throw new EOFException();
+ }
+
+ /**
+ * Reads a 64-bit <code>double</code> value from this stream.
+ *
+ * @return the next <code>double</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeDouble(double)
+ */
+ public final double readDouble() throws IOException {
+ return Double.longBitsToDouble(readLong());
+ }
+
+ /**
+ * Reads a 32-bit <code>float</code> value from this stream.
+ *
+ * @return the next <code>float</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeFloat(float)
+ */
+ public final float readFloat() throws IOException {
+ return Float.intBitsToFloat(readInt());
+ }
+
+ /**
+ * Reads bytes from this stream into the byte array <code>buffer</code>.
+ * This method will block until <code>buffer.length</code> number of bytes
+ * have been read.
+ *
+ * @param buffer
+ * to read bytes into
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#write(byte[])
+ * @see DataOutput#write(byte[], int, int)
+ */
+ public final void readFully(byte[] buffer) throws IOException {
+ readFully(buffer, 0, buffer.length);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.io.DataInput#readFully(byte[], int, int)
+ */
+ public final void readFully(byte[] buffer, int offset, int length)
+ throws IOException {
+ if (buffer != null) {
+ // avoid int overflow
+ if (0 <= offset && offset <= buffer.length && 0 <= length
+ && length <= buffer.length - offset) {
+ while (length > 0) {
+ int result = in.read(buffer, offset, length);
+ if (result >= 0) {
+ offset += result;
+ length -= result;
+ } else
+ throw new EOFException();
+ }
+ } else
+ throw new IndexOutOfBoundsException();
+ } else
+ throw new NullPointerException(org.apache.harmony.luni.util.Msg
+ .getString("K0047")); //$NON-NLS-1$
+ }
+
+ /**
+ * Reads a 32-bit integer value from this stream.
+ *
+ * @return the next <code>int</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeInt(int)
+ */
+ public final int readInt() throws IOException {
+ int b1 = in.read();
+ int b2 = in.read();
+ int b3 = in.read();
+ int b4 = in.read();
+ if ((b1 | b2 | b3 | b4) >= 0)
+ return ((b1 << 24) + (b2 << 16) + (b3 << 8) + b4);
+ throw new EOFException();
+ }
+
+ /**
+ * Answers a <code>String</code> representing the next line of text
+ * available in this BufferedReader. A line is represented by 0 or more
+ * characters followed by <code>'\n'</code>, <code>'\r'</code>,
+ * <code>"\n\r"</code> or end of stream. The <code>String</code> does
+ * not include the newline sequence.
+ *
+ * @return the contents of the line or null if no characters were read
+ * before end of stream.
+ *
+ * @throws IOException
+ * If the DataInputStream is already closed or some other IO
+ * error occurs.
+ *
+ * @deprecated Use BufferedReader
+ */
+ public final String readLine() throws IOException {
+ StringBuffer line = new StringBuffer(80); // Typical line length
+ boolean foundTerminator = false;
+ while (true) {
+ int nextByte = in.read();
+ switch (nextByte) {
+ case -1:
+ if (line.length() == 0 && !foundTerminator)
+ return null;
+ return line.toString();
+ case (byte) '\r':
+ if (foundTerminator) {
+ ((PushbackInputStream) in).unread(nextByte);
+ return line.toString();
+ }
+ foundTerminator = true;
+ /* Have to be able to peek ahead one byte */
+ if (!(in.getClass() == PushbackInputStream.class))
+ in = new PushbackInputStream(in);
+ break;
+ case (byte) '\n':
+ return line.toString();
+ default:
+ if (foundTerminator) {
+ ((PushbackInputStream) in).unread(nextByte);
+ return line.toString();
+ }
+ line.append((char) nextByte);
+ }
+ }
+ }
+
+ /**
+ * Reads a 64-bit <code>long</code> value from this stream.
+ *
+ * @return the next <code>long</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeLong(long)
+ */
+ public final long readLong() throws IOException {
+ int i1 = readInt();
+ int b1 = in.read();
+ int b2 = in.read();
+ int b3 = in.read();
+ int b4 = in.read();
+ if ((b1 | b2 | b3 | b4) >= 0)
+ return (((long) i1) << 32) + ((long) b1 << 24) + (b2 << 16)
+ + (b3 << 8) + b4;
+ throw new EOFException();
+ }
+
+ /**
+ * Reads a 16-bit <code>short</code> value from this stream.
+ *
+ * @return the next <code>short</code> value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeShort(int)
+ */
+ public final short readShort() throws IOException {
+ int b1 = in.read();
+ int b2 = in.read();
+ if ((b1 | b2) >= 0)
+ return (short) ((b1 << 8) + b2);
+ throw new EOFException();
+ }
+
+ /**
+ * Reads an unsigned 8-bit <code>byte</code> value from this stream and
+ * returns it as an int.
+ *
+ * @return the next unsigned byte value from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeByte(int)
+ */
+ public final int readUnsignedByte() throws IOException {
+ int temp = in.read();
+ if (temp >= 0)
+ return temp;
+ throw new EOFException();
+ }
+
+ /**
+ * Reads a 16-bit unsigned <code>short</code> value from this stream and
+ * returns it as an int.
+ *
+ * @return the next unsigned <code>short</code> value from the source
+ * stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeShort(int)
+ */
+ public final int readUnsignedShort() throws IOException {
+ int b1 = in.read();
+ int b2 = in.read();
+ if ((b1 | b2) >= 0)
+ return ((b1 << 8) + b2);
+ throw new EOFException();
+ }
+
+ /**
+ * Reads a UTF format String from this Stream.
+ *
+ * @return the next UTF String from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeUTF(java.lang.String)
+ */
+ public final String readUTF() throws IOException {
+ int utfSize = readUnsignedShort();
+ return decodeUTF(utfSize);
+ }
+
+ static final int MAX_BUF_SIZE = 8192;
+
+ static final Object cacheLock = new Object();
+
+ static boolean useShared = true;
+
+ static byte[] byteBuf = new byte[0];
+
+ static char[] charBuf = new char[0];
+
+ String decodeUTF(int utfSize) throws IOException {
+ byte[] buf;
+ char[] out = null;
+ boolean makeBuf = true;
+
+ /*
+ * Try to avoid the synchronization -- if we get a stale value for
+ * useShared then there is no foul below, but those that sync on the
+ * lock must see the right value.
+ */
+ if (utfSize <= MAX_BUF_SIZE && useShared) {
+ synchronized (cacheLock) {
+ if (useShared) {
+ useShared = false;
+ makeBuf = false;
+ }
+ }
+ }
+ if (makeBuf) {
+ buf = new byte[utfSize];
+ out = new char[utfSize];
+ } else {
+ /*
+ * Need to 'sample' byteBuf and charBuf before using them because
+ * they are not protected by the cacheLock. They may get out of sync
+ * with the static and one another, but that is ok because we
+ * explicitly check and fix their length after sampling.
+ */
+ buf = byteBuf;
+ if (buf.length < utfSize)
+ buf = byteBuf = new byte[utfSize];
+ out = charBuf;
+ if (out.length < utfSize) {
+ out = charBuf = new char[utfSize];
+ }
+ }
+
+ readFully(buf, 0, utfSize);
+ String result;
+ result = org.apache.harmony.luni.util.Util.convertUTF8WithBuf(buf, out, 0, utfSize);
+ if (!makeBuf) {
+ /*
+ * Do not synchronize useShared on cacheLock, it will make it back
+ * to main storage at some point, and no harm until it does.
+ */
+ useShared = true;
+ }
+ return result;
+ }
+
+ /**
+ * Reads a UTF format String from the DataInput Stream <code>in</code>.
+ *
+ * @param in
+ * the input stream to read from
+ * @return the next UTF String from the source stream.
+ *
+ * @throws IOException
+ * If a problem occurs reading from this DataInputStream.
+ *
+ * @see DataOutput#writeUTF(java.lang.String)
+ */
+ public static final String readUTF(DataInput in) throws IOException {
+ return in.readUTF();
+ }
+
+ /**
+ * Skips <code>count</code> number of bytes in this stream. Subsequent
+ * <code>read()</code>'s will not return these bytes unless
+ * <code>reset()</code> is used.
+ *
+ * @param count
+ * the number of bytes to skip.
+ * @return the number of bytes actually skipped.
+ *
+ * @throws IOException
+ * If the stream is already closed or another IOException
+ * occurs.
+ */
+ public final int skipBytes(int count) throws IOException {
+ int skipped = 0;
+ long skip;
+ while (skipped < count && (skip = in.skip(count - skipped)) != 0)
+ skipped += skip;
+ if (skipped >= 0)
+ return skipped;
+ throw new EOFException();
+ }
+
+}
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataInputStream.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataOutput.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataOutput.java?rev=432462&r1=432461&r2=432462&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataOutput.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataOutput.java Thu Aug 17 18:45:35 2006
@@ -1,234 +1,234 @@
-/* Copyright 1998, 2004 The Apache Software Foundation or its licensors, as applicable
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package java.io;
-
-
-/**
- * DataOutput is an interface which declares methods for writing typed data to a
- * Stream. Typically, this stream can be read in by a class which implements
- * DataInput. Types that can be written include byte, 16-bit short, 32-bit int,
- * 32-bit float, 64-bit long, 64-bit double, byte strings, and UTF Strings.
- *
- * @see DataOutputStream
- * @see RandomAccessFile
- */
-public interface DataOutput {
-
- /**
- * Writes the entire contents of the byte array <code>buffer</code> to the
- * OutputStream.
- *
- * @param buffer
- * the buffer to be written
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readFully(byte[])
- * @see DataInput#readFully(byte[], int, int)
- */
- public abstract void write(byte buffer[]) throws IOException;
-
- /**
- * Writes <code>count</code> <code>bytes</code> from the byte array
- * <code>buffer</code> starting at offset <code>index</code> to the
- * OutputStream.
- *
- * @param buffer
- * the buffer to be written
- * @param offset
- * offset in buffer to get bytes
- * @param count
- * number of bytes in buffer to write
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readFully(byte[])
- * @see DataInput#readFully(byte[], int, int)
- */
- public abstract void write(byte buffer[], int offset, int count)
- throws IOException;
-
- /**
- * Writes the specified <code>byte</code> to the OutputStream.
- *
- * @param oneByte
- * the byte to be written
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readByte()
- */
- public abstract void write(int oneByte) throws IOException;
-
- /**
- * Writes a boolean to this output stream.
- *
- * @param val
- * the boolean value to write to the OutputStream
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readBoolean()
- */
- public abstract void writeBoolean(boolean val) throws IOException;
-
- /**
- * Writes a 8-bit byte to this output stream.
- *
- * @param val
- * the byte value to write to the OutputStream
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readByte()
- * @see DataInput#readUnsignedByte()
- */
- public abstract void writeByte(int val) throws IOException;
-
- /**
- * Writes the low order 8-bit bytes from a String to this output stream.
- *
- * @param str
- * the String containing the bytes to write to the OutputStream
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readFully(byte[])
- * @see DataInput#readFully(byte[],int,int)
- */
- public abstract void writeBytes(String str) throws IOException;
-
- /**
- * Writes the specified 16-bit character to the OutputStream. Only the lower
- * 2 bytes are written with the higher of the 2 bytes written first. This
- * represents the Unicode value of val.
- *
- * @param oneByte
- * the character to be written
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readChar()
- */
- public abstract void writeChar(int oneByte) throws IOException;
-
- /**
- * Writes the specified 16-bit characters contained in str to the
- * OutputStream. Only the lower 2 bytes of each character are written with
- * the higher of the 2 bytes written first. This represents the Unicode
- * value of each character in str.
- *
- * @param str
- * the String whose characters are to be written.
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readChar()
- */
- public abstract void writeChars(String str) throws IOException;
-
- /**
- * Writes a 64-bit double to this output stream. The resulting output is the
- * 8 bytes resulting from calling Double.doubleToLongBits().
- *
- * @param val
- * the double to be written.
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readDouble()
- */
- public abstract void writeDouble(double val) throws IOException;
-
- /**
- * Writes a 32-bit float to this output stream. The resulting output is the
- * 4 bytes resulting from calling Float.floatToIntBits().
- *
- * @param val
- * the float to be written.
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readFloat()
- */
- public abstract void writeFloat(float val) throws IOException;
-
- /**
- * Writes a 32-bit int to this output stream. The resulting output is the 4
- * bytes, highest order first, of val.
- *
- * @param val
- * the int to be written.
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readInt()
- */
- public abstract void writeInt(int val) throws IOException;
-
- /**
- * Writes a 64-bit long to this output stream. The resulting output is the 8
- * bytes, highest order first, of val.
- *
- * @param val
- * the long to be written.
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readLong()
- */
- public abstract void writeLong(long val) throws IOException;
-
- /**
- * Writes the specified 16-bit short to the OutputStream. Only the lower 2
- * bytes are written with the higher of the 2 bytes written first.
- *
- * @param val
- * the short to be written
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readShort()
- * @see DataInput#readUnsignedShort()
- */
- public abstract void writeShort(int val) throws IOException;
-
- /**
- * Writes the specified String out in UTF format.
- *
- * @param str
- * the String to be written in UTF format.
- *
- * @throws IOException
- * If an error occurs attempting to write to this stream.
- *
- * @see DataInput#readUTF()
- */
- public abstract void writeUTF(String str) throws IOException;
-}
+/* Copyright 1998, 2004 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.io;
+
+
+/**
+ * DataOutput is an interface which declares methods for writing typed data to a
+ * Stream. Typically, this stream can be read in by a class which implements
+ * DataInput. Types that can be written include byte, 16-bit short, 32-bit int,
+ * 32-bit float, 64-bit long, 64-bit double, byte strings, and UTF Strings.
+ *
+ * @see DataOutputStream
+ * @see RandomAccessFile
+ */
+public interface DataOutput {
+
+ /**
+ * Writes the entire contents of the byte array <code>buffer</code> to the
+ * OutputStream.
+ *
+ * @param buffer
+ * the buffer to be written
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readFully(byte[])
+ * @see DataInput#readFully(byte[], int, int)
+ */
+ public abstract void write(byte buffer[]) throws IOException;
+
+ /**
+ * Writes <code>count</code> <code>bytes</code> from the byte array
+ * <code>buffer</code> starting at offset <code>index</code> to the
+ * OutputStream.
+ *
+ * @param buffer
+ * the buffer to be written
+ * @param offset
+ * offset in buffer to get bytes
+ * @param count
+ * number of bytes in buffer to write
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readFully(byte[])
+ * @see DataInput#readFully(byte[], int, int)
+ */
+ public abstract void write(byte buffer[], int offset, int count)
+ throws IOException;
+
+ /**
+ * Writes the specified <code>byte</code> to the OutputStream.
+ *
+ * @param oneByte
+ * the byte to be written
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readByte()
+ */
+ public abstract void write(int oneByte) throws IOException;
+
+ /**
+ * Writes a boolean to this output stream.
+ *
+ * @param val
+ * the boolean value to write to the OutputStream
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readBoolean()
+ */
+ public abstract void writeBoolean(boolean val) throws IOException;
+
+ /**
+ * Writes a 8-bit byte to this output stream.
+ *
+ * @param val
+ * the byte value to write to the OutputStream
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readByte()
+ * @see DataInput#readUnsignedByte()
+ */
+ public abstract void writeByte(int val) throws IOException;
+
+ /**
+ * Writes the low order 8-bit bytes from a String to this output stream.
+ *
+ * @param str
+ * the String containing the bytes to write to the OutputStream
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readFully(byte[])
+ * @see DataInput#readFully(byte[],int,int)
+ */
+ public abstract void writeBytes(String str) throws IOException;
+
+ /**
+ * Writes the specified 16-bit character to the OutputStream. Only the lower
+ * 2 bytes are written with the higher of the 2 bytes written first. This
+ * represents the Unicode value of val.
+ *
+ * @param oneByte
+ * the character to be written
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readChar()
+ */
+ public abstract void writeChar(int oneByte) throws IOException;
+
+ /**
+ * Writes the specified 16-bit characters contained in str to the
+ * OutputStream. Only the lower 2 bytes of each character are written with
+ * the higher of the 2 bytes written first. This represents the Unicode
+ * value of each character in str.
+ *
+ * @param str
+ * the String whose characters are to be written.
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readChar()
+ */
+ public abstract void writeChars(String str) throws IOException;
+
+ /**
+ * Writes a 64-bit double to this output stream. The resulting output is the
+ * 8 bytes resulting from calling Double.doubleToLongBits().
+ *
+ * @param val
+ * the double to be written.
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readDouble()
+ */
+ public abstract void writeDouble(double val) throws IOException;
+
+ /**
+ * Writes a 32-bit float to this output stream. The resulting output is the
+ * 4 bytes resulting from calling Float.floatToIntBits().
+ *
+ * @param val
+ * the float to be written.
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readFloat()
+ */
+ public abstract void writeFloat(float val) throws IOException;
+
+ /**
+ * Writes a 32-bit int to this output stream. The resulting output is the 4
+ * bytes, highest order first, of val.
+ *
+ * @param val
+ * the int to be written.
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readInt()
+ */
+ public abstract void writeInt(int val) throws IOException;
+
+ /**
+ * Writes a 64-bit long to this output stream. The resulting output is the 8
+ * bytes, highest order first, of val.
+ *
+ * @param val
+ * the long to be written.
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readLong()
+ */
+ public abstract void writeLong(long val) throws IOException;
+
+ /**
+ * Writes the specified 16-bit short to the OutputStream. Only the lower 2
+ * bytes are written with the higher of the 2 bytes written first.
+ *
+ * @param val
+ * the short to be written
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readShort()
+ * @see DataInput#readUnsignedShort()
+ */
+ public abstract void writeShort(int val) throws IOException;
+
+ /**
+ * Writes the specified String out in UTF format.
+ *
+ * @param str
+ * the String to be written in UTF format.
+ *
+ * @throws IOException
+ * If an error occurs attempting to write to this stream.
+ *
+ * @see DataInput#readUTF()
+ */
+ public abstract void writeUTF(String str) throws IOException;
+}
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataOutput.java
------------------------------------------------------------------------------
svn:eol-style = native