schmitzm.io
Class BinaryInputBuffer

java.lang.Object
  extended by java.io.InputStream
      extended by schmitzm.io.InputBuffer
          extended by schmitzm.io.BinaryInputBuffer
All Implemented Interfaces:
Closeable

public class BinaryInputBuffer
extends InputBuffer


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.
Der BinaryInputBuffer erweitert den InputBuffer durch die Moeglichkeit, neben einzelnen Bytes, auch die Binaerdarstellung ganze Zahlen (mehrere Bytes auf einen Schub) in den Buffer schreiben zu koennen.
Um in gleicherweise ganze Zahlen aus dem Buffer zu lesen, kann die Klasse adagios.types.BinaryInputStream verwendet werden:
BinaryInputBuffer buf = new BinaryInputBuffer(1000);
BinaryInputStream inp = new BinaryInputStream( buf );
buf.writeInt( 123456 );
buf.writeShort( 1000 );
int i = inp.readInt();
int s = inp.readShort();

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

Field Summary
 
Fields inherited from class schmitzm.io.InputBuffer
buffer, bufferFull, readPos, writePos
 
Constructor Summary
BinaryInputBuffer()
          Erzeugt einen neuen BinaryInputBuffer der Groesse 1024.
BinaryInputBuffer(int byteSize)
          Erzeugt einen neuen BinaryInputBuffer.
 
Method Summary
 void writeChar(byte byteOrder, char c)
          Schreibt einen char-Wert (2 Byte) in den Buffer.
 void writeChar(char c)
          Schreibt einen char-Wert (2 Byte) in den Buffer.
 void writeDouble(byte byteOrder, double d)
          Schreibt einen double-Wert (8 Byte) in den Buffer.
 void writeFloat(byte byteOrder, float f)
          Schreibt einen float-Wert (4 Byte) in den Buffer.
 void writeFloat(float f)
          Schreibt einen float-Wert (8 Byte) in den Buffer.
 void writeInt(byte byteOrder, int i)
          Schreibt einen int-Wert (4 Byte) in den Buffer.
 void writeInt(int i)
          Schreibt einen int-Wert (4 Byte) in den Buffer.
 void writeLong(byte byteOrder, long l)
          Schreibt einen long-Wert (8 Byte) in den Buffer.
 void writeLong(long l)
          Schreibt einen long-Wert (8 Byte) in den Buffer.
 void writeShort(byte byteOrder, short s)
          Schreibt einen short-Wert (2 Byte) in den Buffer.
 void writeShort(short s)
          Schreibt einen short-Wert (2 Byte) in den Buffer.
 
Methods inherited from class schmitzm.io.InputBuffer
available, availableSpace, clear, getBufferSize, getContent, incPosition, incPosition, read, skip, write, write, write
 
Methods inherited from class java.io.InputStream
close, mark, markSupported, read, read, reset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BinaryInputBuffer

public BinaryInputBuffer()
Erzeugt einen neuen BinaryInputBuffer der Groesse 1024.


BinaryInputBuffer

public BinaryInputBuffer(int byteSize)
Erzeugt einen neuen BinaryInputBuffer.

Parameters:
byteSize - Groesse des Buffers in Byte
Method Detail

writeChar

public void writeChar(byte byteOrder,
                      char c)
Schreibt einen char-Wert (2 Byte) in den Buffer. Hierbei wird das 2er-Komplement verwendet.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
c - zu schreibender Char
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertLongToBytes(byte,long,int)

writeChar

public void writeChar(char c)
Schreibt einen char-Wert (2 Byte) in den Buffer. Hierbei wird das 2er-Komplement in BigEndian verwendet.

Parameters:
c - zu schreibender Char
See Also:
BinaryUtil.XDR, writeChar(byte,char)

writeShort

public void writeShort(byte byteOrder,
                       short s)
Schreibt einen short-Wert (2 Byte) in den Buffer. Hierbei wird das 2er-Komplement verwendet.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
s - zu schreibender Short
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertLongToBytes(byte,long,int)

writeShort

public void writeShort(short s)
Schreibt einen short-Wert (2 Byte) in den Buffer. Hierbei wird das 2er-Komplement in BigEndian verwendet.

Parameters:
s - zu schreibender Short
See Also:
BinaryUtil.XDR, writeShort(byte,short)

writeInt

public void writeInt(byte byteOrder,
                     int i)
Schreibt einen int-Wert (4 Byte) in den Buffer. Hierbei wird das 2er-Komplement verwendet.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
i - zu schreibender Int
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertLongToBytes(byte,long,int)

writeInt

public void writeInt(int i)
Schreibt einen int-Wert (4 Byte) in den Buffer. Hierbei wird das 2er-Komplement in BigEndian verwendet.

Parameters:
i - zu schreibender Int
See Also:
BinaryUtil.XDR, writeInt(byte,int)

writeLong

public void writeLong(byte byteOrder,
                      long l)
Schreibt einen long-Wert (8 Byte) in den Buffer. Hierbei wird das 2er-Komplement verwendet.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
l - zu schreibender Long
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertLongToBytes(byte,long,int)

writeLong

public void writeLong(long l)
Schreibt einen long-Wert (8 Byte) in den Buffer. Hierbei wird das 2er-Komplement in BigEndian verwendet.

Parameters:
l - zu schreibender Long
See Also:
BinaryUtil.XDR, writeLong(byte,long)

writeFloat

public void writeFloat(byte byteOrder,
                       float f)
Schreibt einen float-Wert (4 Byte) in den Buffer.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
f - zu schreibender Float
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertFloatToBytes(byte,float)

writeDouble

public void writeDouble(byte byteOrder,
                        double d)
Schreibt einen double-Wert (8 Byte) in den Buffer.

Parameters:
byteOrder - BigEndian/LittleEndian (vgl. BinaryUtil)
d - zu schreibender Double
See Also:
BinaryUtil.XDR, BinaryUtil.NDR, BinaryUtil.convertDoubleToBytes(byte,double)

writeFloat

public void writeFloat(float f)
Schreibt einen float-Wert (8 Byte) in den Buffer. Hierbei wird BigEndian verwendet.

Parameters:
f - zu schreibender Float
See Also:
BinaryUtil.XDR, writeFloat(byte,float)