gnu.CORBA.CDR
Class LittleEndianInputStream
- AbstractDataInput, AutoCloseable, Closeable
This class reads data in the Little Endian format. It reuses
code from GNU Classpath DataInputStream.
protected boolean | convertToBoolean(int b)
|
protected byte | convertToByte(int i)
|
protected char | convertToChar(byte[] buf) - Less significant byte first.
|
protected int | convertToInt(byte[] buf) - Less significant byte first.
|
protected long | convertToLong(byte[] buf) - Less significant byte first.
|
protected short | convertToShort(byte[] buf) - Less significant byte first.
|
protected int | convertToUnsignedByte(int i)
|
protected int | convertToUnsignedShort(byte[] buf) - Less significant byte first.
|
int | read(byte[] b) - This method reads bytes from the underlying stream into the specified
byte array buffer.
|
int | read(byte[] b, int off, int len) - This method reads bytes from the underlying stream into the specified
byte array buffer.
|
boolean | readBoolean() - This method reads a Java boolean value from an input stream.
|
byte | readByte() - This method reads a Java byte value from an input stream.
|
char | readChar() - This method reads a Java
char value from an input stream.
|
double | readDouble() - This method reads a Java double value from an input stream.
|
float | readFloat() - This method reads a Java float value from an input stream.
|
void | readFully(byte[] b) - This method reads raw bytes into the passed array until the array is
full.
|
void | readFully(byte[] buf, int offset, int len) - This method reads raw bytes into the passed array
buf
starting
offset bytes into the buffer.
|
int | readInt() - This method reads a Java
int value from an input stream
It operates by reading four bytes from the stream and converting them to
a single Java int .
|
String | readLine()
|
long | readLong() - This method reads a Java
long value from an input stream
It operates by reading eight bytes from the stream and converting them to
a single Java long .
|
short | readShort() - This method reads a signed 16-bit value into a Java in from the
stream.
|
String | readUTF() - This should never be called.
|
int | readUnsignedByte() - This method reads 8 unsigned bits into a Java
int
value from the stream.
|
int | readUnsignedShort() - This method reads 16 unsigned bits into a Java int value from the stream.
|
int | skipBytes(int n) - This method attempts to skip and discard the specified number of bytes
in the input stream.
|
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
LittleEndianInputStream
public LittleEndianInputStream(InputStream in)
This constructor initializes a new DataInputStream
to read from the specified subordinate stream.
in
- The subordinate InputStream
to read from
convertToChar
protected char convertToChar(byte[] buf)
Less significant byte first.
convertToInt
protected int convertToInt(byte[] buf)
Less significant byte first.
convertToLong
protected long convertToLong(byte[] buf)
Less significant byte first.
convertToShort
protected short convertToShort(byte[] buf)
Less significant byte first.
read
public int read(byte[] b)
throws IOException
This method reads bytes from the underlying stream into the specified
byte array buffer. It will attempt to fill the buffer completely, but
may return a short count if there is insufficient data remaining to be
read to fill the buffer.
- read in interface AbstractDataInput
- read in interface FilterInputStream
b
- The buffer into which bytes will be read.
- The actual number of bytes read, or -1 if end of stream reached
before reading any bytes.
read
public int read(byte[] b,
int off,
int len)
throws IOException
This method reads bytes from the underlying stream into the specified
byte array buffer. It will attempt to read len
bytes and
will start storing them at position off
into the buffer.
This method can return a short count if there is insufficient data
remaining to be read to complete the desired read length.
- read in interface AbstractDataInput
- read in interface FilterInputStream
b
- The buffer into which bytes will be read.off
- The offset into the buffer to start storing bytes.len
- The requested number of bytes to read.
- The actual number of bytes read, or -1 if end of stream reached
before reading any bytes.
readBoolean
public boolean readBoolean()
throws IOException
This method reads a Java boolean value from an input stream. It does
so by reading a single byte of data. If that byte is zero, then the
value returned is
false
. If the byte is non-zero, then
the value returned is
true
.
This method can read a
boolean
written by an object
implementing the
writeBoolean()
method in the
DataOutput
interface.
- readBoolean in interface AbstractDataInput
readByte
public byte readByte()
throws IOException
This method reads a Java byte value from an input stream. The value
is in the range of -128 to 127.
This method can read a
byte
written by an object
implementing the
writeByte()
method in the
DataOutput
interface.
- readByte in interface AbstractDataInput
readChar
public char readChar()
throws IOException
This method reads a Java
char
value from an input stream.
It operates by reading two bytes from the stream and converting them to
a single 16-bit Java
char
. The two bytes are stored most
significant byte first (i.e., "big endian") regardless of the native
host byte ordering.
As an example, if
byte1
and
byte2
represent the first and second byte read from the stream
respectively, they will be transformed to a
char
in
the following manner:
(char)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF)
This method can read a
char
written by an object
implementing the
writeChar()
method in the
DataOutput
interface.
- readChar in interface AbstractDataInput
readDouble
public double readDouble()
throws IOException
This method reads a Java double value from an input stream. It operates
by first reading a
long
value from the stream by calling the
readLong()
method in this interface, then converts
that
long
to a
double
using the
longBitsToDouble
method in the class
java.lang.Double
This method can read a
double
written by an object
implementing the
writeDouble()
method in the
DataOutput
interface.
- readDouble in interface AbstractDataInput
readFloat
public float readFloat()
throws IOException
This method reads a Java float value from an input stream. It
operates by first reading an
int
value from the
stream by calling the
readInt()
method in this
interface, then converts that
int
to a
float
using the
intBitsToFloat
method
in the class
java.lang.Float
This method can read a
float
written by an object
implementing the
writeFloat()
method in the
DataOutput
interface.
- readFloat in interface AbstractDataInput
readFully
public void readFully(byte[] b)
throws IOException
This method reads raw bytes into the passed array until the array is
full. Note that this method blocks until the data is available and
throws an exception if there is not enough data left in the stream to
fill the buffer. Note also that zero length buffers are permitted.
In this case, the method will return immediately without reading any
bytes from the stream.
- readFully in interface AbstractDataInput
b
- The buffer into which to read the data
readFully
public void readFully(byte[] buf,
int offset,
int len)
throws IOException
This method reads raw bytes into the passed array buf
starting
offset
bytes into the buffer. The number of bytes read
will be
exactly len
. Note that this method blocks until the data is
available and throws an exception if there is not enough data left in
the stream to read len
bytes. Note also that zero length
buffers are permitted. In this case, the method will return immediately
without reading any bytes from the stream.
buf
- The buffer into which to read the dataoffset
- The offset into the buffer to start storing datalen
- The number of bytes to read into the buffer
readInt
public int readInt()
throws IOException
This method reads a Java
int
value from an input stream
It operates by reading four bytes from the stream and converting them to
a single Java
int
. The bytes are stored most
significant byte first (i.e., "big endian") regardless of the native
host byte ordering.
As an example, if
byte1
through
byte4
represent
the first four bytes read from the stream, they will be
transformed to an
int
in the following manner:
(int)(((byte1 & 0xFF) << 24) + ((byte2 & 0xFF) << 16) +
((byte3 & 0xFF)<< 8) + (byte4 & 0xFF)))
The value returned is in the range of -2147483648 to 2147483647.
This method can read an
int
written by an object
implementing the
writeInt()
method in the
DataOutput
interface.
- readInt in interface AbstractDataInput
readLine
public String readLine()
throws IOException
This method reads the next line of text data from an input
stream. It operates by reading bytes and converting those bytes
to
char
values by treating the byte read as the low
eight bits of the
char
and using 0 as the high eight
bits. Because of this, it does not support the full 16-bit
Unicode character set.
The reading of bytes ends when either the end of file or a line
terminator is encountered. The bytes read are then returned as a
String
A line terminator is a byte sequence
consisting of either
\r
,
\n
or
\r\n
. These termination charaters are discarded and
are not returned as part of the string.
This method can read data that was written by an object implementing the
writeLine()
method in
DataOutput
.
- The line read as a
String
readLong
public long readLong()
throws IOException
This method reads a Java
long
value from an input stream
It operates by reading eight bytes from the stream and converting them to
a single Java
long
. The bytes are stored most
significant byte first (i.e., "big endian") regardless of the native
host byte ordering.
As an example, if
byte1
through
byte8
represent
the first eight bytes read from the stream, they will be
transformed to an
long
in the following manner:
(long)(((byte1 & 0xFF) << 56) + ((byte2 & 0xFF) << 48) +
((byte3 & 0xFF) << 40) + ((byte4 & 0xFF) << 32) +
((byte5 & 0xFF) << 24) + ((byte6 & 0xFF) << 16) +
((byte7 & 0xFF) << 8) + (byte8 & 0xFF)))
The value returned is in the range of -9223372036854775808 to
9223372036854775807.
This method can read an
long
written by an object
implementing the
writeLong()
method in the
DataOutput
interface.
- readLong in interface AbstractDataInput
readShort
public short readShort()
throws IOException
This method reads a signed 16-bit value into a Java in from the
stream. It operates by reading two bytes from the stream and
converting them to a single 16-bit Java
short
. The
two bytes are stored most significant byte first (i.e., "big
endian") regardless of the native host byte ordering.
As an example, if
byte1
and
byte2
represent the first and second byte read from the stream
respectively, they will be transformed to a
short
. in
the following manner:
(short)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF))
The value returned is in the range of -32768 to 32767.
This method can read a
short
written by an object
implementing the
writeShort()
method in the
DataOutput
interface.
- readShort in interface AbstractDataInput
readUnsignedByte
public int readUnsignedByte()
throws IOException
This method reads 8 unsigned bits into a Java
int
value from the stream. The value returned is in the range of 0 to
255.
This method can read an unsigned byte written by an object
implementing the
writeUnsignedByte()
method in the
DataOutput
interface.
- readUnsignedByte in interface AbstractDataInput
- The unsigned bytes value read as a Java
int
.
readUnsignedShort
public int readUnsignedShort()
throws IOException
This method reads 16 unsigned bits into a Java int value from the stream.
It operates by reading two bytes from the stream and converting them to
a single Java
int
The two bytes are stored most
significant byte first (i.e., "big endian") regardless of the native
host byte ordering.
As an example, if
byte1
and
byte2
represent the first and second byte read from the stream
respectively, they will be transformed to an
int
in
the following manner:
(int)(((byte1 & 0xFF) << 8) + (byte2 & 0xFF))
The value returned is in the range of 0 to 65535.
This method can read an unsigned short written by an object
implementing the
writeUnsignedShort()
method in the
DataOutput
interface.
- readUnsignedShort in interface AbstractDataInput
- The unsigned short value read as a Java
int
skipBytes
public int skipBytes(int n)
throws IOException
This method attempts to skip and discard the specified number of bytes
in the input stream. It may actually skip fewer bytes than requested.
This method will not skip any bytes if passed a negative number of bytes
to skip.
- skipBytes in interface AbstractDataInput
n
- The requested number of bytes to skip.
- The requested number of bytes to skip.
LittleEndianInputStream.java --
Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 Free Software Foundation
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.