Package com.automation_pros.odva.endian
Class EndianNioInput
- java.lang.Object
-
- com.automation_pros.odva.endian.EndianNioInput
-
- All Implemented Interfaces:
EndianDataInput,java.io.DataInput
public class EndianNioInput extends java.lang.Object implements EndianDataInput
Wrap a NIO ByteBuffer for use as either EndianDataInput or EndianDataOutput compatible with any Capsule subclass. Includes inverse skip handling for fixed-length typed reads and writes.
-
-
Constructor Summary
Constructors Constructor Description EndianNioInput(java.nio.ByteBuffer buf)Wrap the given bytebuffer for use in the Capsule class and any of its subclasses.EndianNioInput(java.nio.ByteBuffer buf, int skip)Wrap the given bytebuffer for use in the Capsule class and any of its subclasses, initializing the preliminary bytes to skip.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description EndianDataInputasLimitedInput(long limit)Unlike the implementation in EndianInputStream, this method immediately "consumes" the given number of bytes from the wrapped NIO buffer after creating the limited slice.protected voidcheckReadSkip(int n)protected byteget()java.nio.ByteBuffergetBuffer()booleanreadBoolean()bytereadByte()charreadChar()charreadCharLE()Little-endian alternative to readChar()doublereadDouble()doublereadDoubleLE()Little-endian alternative to readDouble()floatreadFloat()floatreadFloatLE()Little-endian alternative to readFloat()voidreadFully(byte[] dst)voidreadFully(byte[] dst, int offset, int length)intreadInt()intreadIntLE()Little-endian alternative to readInt()java.lang.StringreadLine()longreadLong()longreadLongLE()Little-endian alternative to readLong()shortreadShort()shortreadShortLE()Little-endian alternative to readShort()intreadUnsignedByte()longreadUnsignedInt()Extension to the DataInput interface similar to readUnsignedShort(), but delivering an unsigned integer in a long.longreadUnsignedIntLE()Little-endian alternative to readUnsignedInt()java.math.BigIntegerreadUnsignedLong()Extension to the DataInput interface similar to readUnsignedShort(), but delivering an unsigned long in a bignum.java.math.BigIntegerreadUnsignedLongLE()Little-endian alternative to readUnsignedLong()intreadUnsignedShort()intreadUnsignedShortLE()Little-endian alternative to readUnsignedShort()java.lang.StringreadUTF()intremaining()intskipBytes(int n)
-
-
-
Constructor Detail
-
EndianNioInput
public EndianNioInput(java.nio.ByteBuffer buf)
Wrap the given bytebuffer for use in the Capsule class and any of its subclasses.
-
EndianNioInput
public EndianNioInput(java.nio.ByteBuffer buf, int skip)Wrap the given bytebuffer for use in the Capsule class and any of its subclasses, initializing the preliminary bytes to skip.
-
-
Method Detail
-
readFully
public void readFully(byte[] dst) throws java.io.IOException- Specified by:
readFullyin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readFully
public void readFully(byte[] dst, int offset, int length) throws java.io.IOException- Specified by:
readFullyin interfacejava.io.DataInput- Throws:
java.io.IOException
-
skipBytes
public int skipBytes(int n) throws java.io.IOException- Specified by:
skipBytesin interfacejava.io.DataInput- Throws:
java.io.IOException
-
get
protected byte get()
-
readBoolean
public boolean readBoolean() throws java.io.IOException- Specified by:
readBooleanin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readByte
public byte readByte() throws java.io.IOException- Specified by:
readBytein interfacejava.io.DataInput- Throws:
java.io.IOException
-
readUnsignedByte
public int readUnsignedByte() throws java.io.IOException- Specified by:
readUnsignedBytein interfacejava.io.DataInput- Throws:
java.io.IOException
-
checkReadSkip
protected void checkReadSkip(int n) throws java.io.IOException- Throws:
java.io.IOException
-
readShort
public short readShort() throws java.io.IOException- Specified by:
readShortin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readUnsignedShort
public int readUnsignedShort() throws java.io.IOException- Specified by:
readUnsignedShortin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readChar
public char readChar() throws java.io.IOException- Specified by:
readCharin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readInt
public int readInt() throws java.io.IOException- Specified by:
readIntin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readLong
public long readLong() throws java.io.IOException- Specified by:
readLongin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readFloat
public float readFloat() throws java.io.IOException- Specified by:
readFloatin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readDouble
public double readDouble() throws java.io.IOException- Specified by:
readDoublein interfacejava.io.DataInput- Throws:
java.io.IOException
-
readLine
public java.lang.String readLine() throws java.io.IOException- Specified by:
readLinein interfacejava.io.DataInput- Throws:
java.io.IOException
-
readUTF
public java.lang.String readUTF() throws java.io.IOException- Specified by:
readUTFin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readShortLE
public short readShortLE() throws java.io.IOExceptionDescription copied from interface:EndianDataInputLittle-endian alternative to readShort()- Specified by:
readShortLEin interfaceEndianDataInput- Returns:
- Throws:
java.io.IOException
-
readCharLE
public char readCharLE() throws java.io.IOExceptionDescription copied from interface:EndianDataInputLittle-endian alternative to readChar()- Specified by:
readCharLEin interfaceEndianDataInput- Returns:
- Throws:
java.io.IOException
-
readDoubleLE
public double readDoubleLE() throws java.io.IOExceptionDescription copied from interface:EndianDataInputLittle-endian alternative to readDouble()- Specified by:
readDoubleLEin interfaceEndianDataInput- Returns:
- Throws:
java.io.IOException
-
readFloatLE
public float readFloatLE() throws java.io.IOExceptionDescription copied from interface:EndianDataInputLittle-endian alternative to readFloat()- Specified by:
readFloatLEin interfaceEndianDataInput- Returns:
- Throws:
java.io.IOException
-
readIntLE
public int readIntLE() throws java.io.IOExceptionDescription copied from interface:EndianDataInputLittle-endian alternative to readInt()- Specified by:
readIntLEin interfaceEndianDataInput- Returns:
- Throws:
java.io.IOException
-
readLongLE
public long readLongLE() throws java.io.IOExceptionDescription copied from interface:EndianDataInputLittle-endian alternative to readLong()- Specified by:
readLongLEin interfaceEndianDataInput- Returns:
- Throws:
java.io.IOException
-
readUnsignedShortLE
public int readUnsignedShortLE() throws java.io.IOExceptionDescription copied from interface:EndianDataInputLittle-endian alternative to readUnsignedShort()- Specified by:
readUnsignedShortLEin interfaceEndianDataInput- Returns:
- Throws:
java.io.IOException
-
readUnsignedInt
public long readUnsignedInt() throws java.io.IOExceptionDescription copied from interface:EndianDataInputExtension to the DataInput interface similar to readUnsignedShort(), but delivering an unsigned integer in a long.- Specified by:
readUnsignedIntin interfaceEndianDataInput- Returns:
- Throws:
java.io.IOException
-
readUnsignedIntLE
public long readUnsignedIntLE() throws java.io.IOExceptionDescription copied from interface:EndianDataInputLittle-endian alternative to readUnsignedInt()- Specified by:
readUnsignedIntLEin interfaceEndianDataInput- Returns:
- Throws:
java.io.IOException
-
readUnsignedLong
public java.math.BigInteger readUnsignedLong() throws java.io.IOExceptionDescription copied from interface:EndianDataInputExtension to the DataInput interface similar to readUnsignedShort(), but delivering an unsigned long in a bignum.- Specified by:
readUnsignedLongin interfaceEndianDataInput- Returns:
- Throws:
java.io.IOException
-
readUnsignedLongLE
public java.math.BigInteger readUnsignedLongLE() throws java.io.IOExceptionDescription copied from interface:EndianDataInputLittle-endian alternative to readUnsignedLong()- Specified by:
readUnsignedLongLEin interfaceEndianDataInput- Returns:
- Throws:
java.io.IOException
-
getBuffer
public java.nio.ByteBuffer getBuffer()
-
remaining
public int remaining() throws java.io.IOException- Throws:
java.io.IOException
-
asLimitedInput
public EndianDataInput asLimitedInput(long limit)
Unlike the implementation in EndianInputStream, this method immediately "consumes" the given number of bytes from the wrapped NIO buffer after creating the limited slice.- Specified by:
asLimitedInputin interfaceEndianDataInput- Parameters:
limit- Number of bytes to read from this subordinate source before signalling end of file. Underlying implementations may truncate this to 32 bits.- Returns:
-
-