Package com.jogamp.common.util
Class Bitstream.ByteInputStream
- java.lang.Object
-
- com.jogamp.common.util.Bitstream.ByteInputStream
-
- All Implemented Interfaces:
Bitstream.ByteStream<InputStream>
public static class Bitstream.ByteInputStream extends Object implements Bitstream.ByteStream<InputStream>
Specificbyte stream
.Can handle
input
operations only.
-
-
Constructor Summary
Constructors Constructor Description ByteInputStream(InputStream stream)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canInput()
Return true if stream can handle input, i.e.boolean
canOutput()
Return true if stream can handle output, i.e.void
close()
Closing the underlying stream, impliesBitstream.ByteStream.flush()
.void
flush()
Synchronizes all underlyingoutput stream
operations, or do nothing.InputStream
getStream()
Returns the underlying streamvoid
mark(int readLimit)
Setmarkpos
to current position, allowing the stream to beBitstream.ByteStream.reset()
.long
position()
Returns the byte position in the stream.long
position(long newPosition)
Sets this stream's position.int
read()
Reads one byte from the stream.void
reset()
Reset stream position to markpos as set viaBitstream.ByteStream.mark(int)
.void
setStream(InputStream stream)
Sets the underlying stream, withoutBitstream.ByteStream.close()
ing the previous one.long
skip(long n)
It is implementation dependent, whether backward skip giving a negative number is supported or not.int
write(byte val)
Writes one byte, to the stream.
-
-
-
Constructor Detail
-
ByteInputStream
public ByteInputStream(InputStream stream)
-
-
Method Detail
-
setStream
public void setStream(InputStream stream)
Description copied from interface:Bitstream.ByteStream
Sets the underlying stream, withoutBitstream.ByteStream.close()
ing the previous one.- Specified by:
setStream
in interfaceBitstream.ByteStream<InputStream>
-
getStream
public InputStream getStream()
Description copied from interface:Bitstream.ByteStream
Returns the underlying stream- Specified by:
getStream
in interfaceBitstream.ByteStream<InputStream>
-
close
public void close() throws IOException
Description copied from interface:Bitstream.ByteStream
Closing the underlying stream, impliesBitstream.ByteStream.flush()
.Implementation will
null
the stream references, henceBitstream.ByteStream.setStream(Object)
must be called before re-using instance.- Specified by:
close
in interfaceBitstream.ByteStream<InputStream>
- Throws:
IOException
-
flush
public void flush()
Description copied from interface:Bitstream.ByteStream
Synchronizes all underlyingoutput stream
operations, or do nothing.- Specified by:
flush
in interfaceBitstream.ByteStream<InputStream>
-
canInput
public boolean canInput()
Description copied from interface:Bitstream.ByteStream
Return true if stream can handle input, i.e.Bitstream.ByteStream.read()
.- Specified by:
canInput
in interfaceBitstream.ByteStream<InputStream>
-
canOutput
public boolean canOutput()
Description copied from interface:Bitstream.ByteStream
Return true if stream can handle output, i.e.Bitstream.ByteStream.write(byte)
- Specified by:
canOutput
in interfaceBitstream.ByteStream<InputStream>
-
position
public long position()
Description copied from interface:Bitstream.ByteStream
Returns the byte position in the stream.- Specified by:
position
in interfaceBitstream.ByteStream<InputStream>
-
position
public long position(long newPosition) throws UnsupportedOperationException, IllegalArgumentException
Description copied from interface:Bitstream.ByteStream
Sets this stream's position.A set mark is cleared if > new position.
Returns
Bitstream.EOS
is end-of-stream is reached, otherwise the new position.Known supporting implementation is
Bitstream.ByteBufferStream
andBitstream.ByteArrayStream
.- Specified by:
position
in interfaceBitstream.ByteStream<InputStream>
- Parameters:
newPosition
- The new positive position.- Returns:
- The new set position or
Bitstream.EOS
if end-of-stream is reached. - Throws:
UnsupportedOperationException
- if not supported, i.e.Bitstream.ByteInputStream
orBitstream.ByteOutputStream
IllegalArgumentException
- If thenewPosition
is negative
-
skip
public long skip(long n) throws IOException
Description copied from interface:Bitstream.ByteStream
It is implementation dependent, whether backward skip giving a negative number is supported or not.- Specified by:
skip
in interfaceBitstream.ByteStream<InputStream>
- Parameters:
n
- number of bytes to skip- Returns:
- actual skipped bytes
- Throws:
IOException
-
mark
public void mark(int readLimit)
Description copied from interface:Bitstream.ByteStream
Setmarkpos
to current position, allowing the stream to beBitstream.ByteStream.reset()
.- Specified by:
mark
in interfaceBitstream.ByteStream<InputStream>
-
reset
public void reset() throws IllegalStateException, IOException
Description copied from interface:Bitstream.ByteStream
Reset stream position to markpos as set viaBitstream.ByteStream.mark(int)
.markpos is kept, hence
Bitstream.ByteStream.reset()
can be called multiple times.- Specified by:
reset
in interfaceBitstream.ByteStream<InputStream>
- Throws:
IllegalStateException
- if markpos has not been set viaBitstream.ByteStream.mark(int)
or reset operation failed.IOException
- if reset operation failed.
-
read
public int read() throws IOException
Description copied from interface:Bitstream.ByteStream
Reads one byte from the stream.Returns
Bitstream.EOS
is end-of-stream is reached, otherwise the resulting value.- Specified by:
read
in interfaceBitstream.ByteStream<InputStream>
- Throws:
IOException
-
write
public int write(byte val) throws UnsupportedOperationException
Description copied from interface:Bitstream.ByteStream
Writes one byte, to the stream.Returns
Bitstream.EOS
is end-of-stream is reached, otherwise the written value.- Specified by:
write
in interfaceBitstream.ByteStream<InputStream>
- Throws:
UnsupportedOperationException
- if not supported, i.e. if stream is not anoutput stream
.
-
-