Package org.apache.commons.codec.binary
Class BaseNCodecInputStream<C extends BaseNCodec,T extends BaseNCodecInputStream<C,T,B>,B extends BaseNCodecInputStream.AbstracBuilder<T,C,B>>
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- org.apache.commons.codec.binary.BaseNCodecInputStream<C,T,B>
-
- Type Parameters:
C- A BaseNCodec subclass.T- A BaseNCodecInputStream subclass.B- A subclass.
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
- Direct Known Subclasses:
Base16InputStream,Base32InputStream,Base45InputStream,Base58InputStream,Base64InputStream
public class BaseNCodecInputStream<C extends BaseNCodec,T extends BaseNCodecInputStream<C,T,B>,B extends BaseNCodecInputStream.AbstracBuilder<T,C,B>> extends java.io.FilterInputStream
Abstracts Base-N input streams.- Since:
- 1.5
- See Also:
Base16InputStream,Base32InputStream,Base58InputStream,Base64InputStream
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classBaseNCodecInputStream.AbstracBuilder<T,C extends BaseNCodec,B extends AbstractBaseNCodecStreamBuilder<T,C,B>>Builds input stream instances inBaseNCodecformat.
-
Constructor Summary
Constructors Modifier Constructor Description protectedBaseNCodecInputStream(java.io.InputStream inputStream, C baseNCodec, boolean doEncode)Constructs a new instance.protectedBaseNCodecInputStream(BaseNCodecInputStream.AbstracBuilder<T,C,B> builder)Constructs a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()booleanisStrictDecoding()Tests whether decoding behavior is strict.voidmark(int readLimit)Marks the current position in this input stream.booleanmarkSupported()intread()Reads onebytefrom this input stream.intread(byte[] array, int offset, int len)Attempts to readlenbytes into the specifiedbarray starting atoffsetfrom this InputStream.voidreset()Always throwsIOExceptionbecause this stream does not support resetting.longskip(long n)
-
-
-
Constructor Detail
-
BaseNCodecInputStream
protected BaseNCodecInputStream(BaseNCodecInputStream.AbstracBuilder<T,C,B> builder)
Constructs a new instance.- Parameters:
builder- A builder.- Since:
- 1.20.0
-
BaseNCodecInputStream
protected BaseNCodecInputStream(java.io.InputStream inputStream, C baseNCodec, boolean doEncode)
Constructs a new instance.- Parameters:
inputStream- The input stream.baseNCodec- The codec.doEncode- set to true to perform encoding, else decoding.
-
-
Method Detail
-
available
public int available() throws java.io.IOException
- Overrides:
availablein classjava.io.FilterInputStream- Returns:
0if theInputStreamhas reachedEOF,1otherwise.- Throws:
java.io.IOException- Thrown if an I/O error occurs.- Since:
- 1.7
-
isStrictDecoding
public boolean isStrictDecoding()
Tests whether decoding behavior is strict.Strict decoding rejects invalid trailing bits and, for Base32 and Base64, noncanonical input. Decoding errors are reported as
IOException. To complete validation, consume this stream to EOF. Decoded bytes can be emitted before a later validation error.- Returns:
- true if using strict decoding.
- Since:
- 1.15
-
mark
public void mark(int readLimit)
Marks the current position in this input stream.The
mark(int)method ofBaseNCodecInputStreamdoes nothing.- Overrides:
markin classjava.io.FilterInputStream- Parameters:
readLimit- The maximum limit of bytes that can be read before the mark position becomes invalid.- Since:
- 1.7
- See Also:
markSupported()
-
markSupported
public boolean markSupported()
- Overrides:
markSupportedin classjava.io.FilterInputStream- Returns:
- Always returns
false.
-
read
public int read() throws java.io.IOException
Reads onebytefrom this input stream.- Overrides:
readin classjava.io.FilterInputStream- Returns:
- The byte as an integer in the range 0 to 255. Returns -1 if EOF has been reached.
- Throws:
java.io.IOException- Thrown if an I/O error occurs.
-
read
public int read(byte[] array, int offset, int len) throws java.io.IOException
Attempts to readlenbytes into the specifiedbarray starting atoffsetfrom this InputStream.- Overrides:
readin classjava.io.FilterInputStream- Parameters:
array- destination byte array.offset- where to start writing the bytes.len- maximum number of bytes to read.- Returns:
- number of bytes read.
- Throws:
java.io.IOException- Thrown if an I/O error occurs.java.lang.NullPointerException- Thrown if the byte array parameter is null.java.lang.IndexOutOfBoundsException- Thrown if the offset, length, or buffer size is invalid.
-
reset
public void reset() throws java.io.IOException
Always throwsIOExceptionbecause this stream does not support resetting.- Overrides:
resetin classjava.io.FilterInputStream- Throws:
java.io.IOException- Thrown if this method is invoked.- Since:
- 1.7
-
skip
public long skip(long n) throws java.io.IOException
- Overrides:
skipin classjava.io.FilterInputStream- Throws:
java.lang.IllegalArgumentException- Thrown if the provided skip length is negative.java.io.IOException- Thrown if an I/O error occurs.- Since:
- 1.7
-
-