schmitzm.io
Class BinaryInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.FilterInputStream
          extended by java.io.DataInputStream
              extended by schmitzm.io.BinaryInputStream
All Implemented Interfaces:
Closeable, DataInput

public class BinaryInputStream
extends DataInputStream


Diese Klasse wurde urspruenglich 2002/2003 von Martin Schmitz fuer die ADAGIOS-Java-Library (Universitaet Bonn) erstellt, 2009 in das SCHMITZM-Projekt uebernommen und teilweise erweitert.
BinaryInputStream erweitert die Klasse java.io.DataInputStream um Methoden, mit denen man Werte wahlweise in BigEndian oder LittleEndian aus dem Stream auslesen kann.
Die geerbten Methoden von DataInputStream interpretieren die Byte-Folgen immer als BigEndian (das erste Byte im Stream ist das hoechstwertige Byte für den zu lesenenden Wert).

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)
See Also:
DataInputStream

Field Summary
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
BinaryInputStream(byte[] bytes)
          Erzeugt einen neuen Binary-Eingabestream, in dem aus dem byte-Array ein ByteArrayInputStream erzeugt wird.
BinaryInputStream(InputStream in)
          Erzeugt einen neuen Binary-Eingabestream.
BinaryInputStream(String str)
          Erzeugt einen neuen Binary-Eingabestream, in dem aus dem String ein ByteArrayInputStream erzeugt wird.
 
Method Summary
static BinaryInputStream fromInputStream(InputStream in)
          Liefert einen InputStream als BinaryInputStream.
 char readChar(byte byteOrder)
          Liest einen char-Wert (2 Bytes) aus dem Stream.
 double readDouble(byte byteOrder)
          Liest einen double-Wert (8 Bytes) aus dem Stream.
 float readFloat(byte byteOrder)
          Liest einen float-Wert (4 Bytes) aus dem Stream.
 int readInt(byte byteOrder)
          Liest einen int-Wert (4 Bytes) aus dem Stream.
 long readLong(byte byteOrder)
          Liest einen long-Wert (8 Bytes) aus dem Stream.
 short readShort(byte byteOrder)
          Liest einen short-Wert (2 Bytes) aus dem Stream.
 int readUnsignedShort(byte byteOrder)
          Liest einen short-Wert (2 Bytes) aus dem Stream, der ohne Vorzeichen interpretiert wird.
 
Methods inherited from class java.io.DataInputStream
read, read, readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTF, readUTF, skipBytes
 
Methods inherited from class java.io.FilterInputStream
available, close, mark, markSupported, read, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BinaryInputStream

public BinaryInputStream(InputStream in)
Erzeugt einen neuen Binary-Eingabestream.


BinaryInputStream

public BinaryInputStream(byte[] bytes)
Erzeugt einen neuen Binary-Eingabestream, in dem aus dem byte-Array ein ByteArrayInputStream erzeugt wird.

See Also:
ByteArrayInputStream

BinaryInputStream

public BinaryInputStream(String str)
Erzeugt einen neuen Binary-Eingabestream, in dem aus dem String ein ByteArrayInputStream erzeugt wird.

See Also:
ByteArrayInputStream
Method Detail

fromInputStream

public static BinaryInputStream fromInputStream(InputStream in)
Liefert einen InputStream als BinaryInputStream. Ist der uebergebene InputStream bereits eine Instanz von BinaryInputStream wird diese (gecastet) zurueckgegeben. Ansonsten wird eine neue BinaryInputStream-Instanz aus dem InputStream erzeugt.


readChar

public char readChar(byte byteOrder)
              throws IOException
Liest einen char-Wert (2 Bytes) aus dem Stream. Dabei wird das 2er-Komplement verwendet.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
Throws:
IOException
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertBytesToLong(byte,InputStream,int)

readShort

public short readShort(byte byteOrder)
                throws IOException
Liest einen short-Wert (2 Bytes) aus dem Stream. Dabei wird das 2er-Komplement verwendet.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
Throws:
IOException
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertBytesToLong(byte,InputStream,int)

readUnsignedShort

public int readUnsignedShort(byte byteOrder)
                      throws IOException
Liest einen short-Wert (2 Bytes) aus dem Stream, der ohne Vorzeichen interpretiert wird. Dabei wird das 2er-Komplement verwendet.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
Throws:
IOException
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertBytesToLong(byte,InputStream,int)

readInt

public int readInt(byte byteOrder)
            throws IOException
Liest einen int-Wert (4 Bytes) aus dem Stream. Dabei wird das 2er-Komplement verwendet.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
Throws:
IOException
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertBytesToLong(byte,InputStream,int)

readLong

public long readLong(byte byteOrder)
              throws IOException
Liest einen long-Wert (8 Bytes) aus dem Stream. Dabei wird das 2er-Komplement verwendet.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
Throws:
IOException
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertBytesToLong(byte,InputStream,int)

readDouble

public double readDouble(byte byteOrder)
                  throws IOException
Liest einen double-Wert (8 Bytes) aus dem Stream.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
Throws:
IOException
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertBytesToDouble(byte,InputStream)

readFloat

public float readFloat(byte byteOrder)
                throws IOException
Liest einen float-Wert (4 Bytes) aus dem Stream.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
Throws:
IOException
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertBytesToFloat(byte,InputStream)