Module com.sun.xml.messaging.saaj
Class BASE64DecoderStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
com.sun.xml.messaging.saaj.packaging.mime.util.BASE64DecoderStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
This class implements a BASE64 Decoder. It is implemented as
a FilterInputStream, so one can just wrap this class around
any input stream and read bytes from this filter. The decoding
is done as the bytes are read out.
-
Field Summary
Fields inherited from class java.io.FilterInputStream
in
-
Constructor Summary
ConstructorDescriptionCreate a BASE64 decoder that decodes the specified input stream -
Method Summary
Modifier and TypeMethodDescriptionint
Returns the number of bytes that can be read from this input stream without blocking.static byte[]
decode
(byte[] inbuf) Base64 decode a byte array.boolean
Tests if this input stream supports marks.int
read()
Read the next decoded byte from this input stream.int
read
(byte[] buf, int off, int len) Reads up tolen
decoded bytes of data from this input stream into an array of bytes.Methods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Constructor Details
-
BASE64DecoderStream
Create a BASE64 decoder that decodes the specified input stream- Parameters:
in
- the input stream
-
-
Method Details
-
read
Read the next decoded byte from this input stream. The byte is returned as anint
in the range0
to255
. If no byte is available because the end of the stream has been reached, the value-1
is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.- Overrides:
read
in classFilterInputStream
- Returns:
- next byte of data, or
-1
if the end of the stream is reached. - Throws:
IOException
- if an I/O error occurs.- See Also:
-
read
Reads up tolen
decoded bytes of data from this input stream into an array of bytes. This method blocks until some input is available.- Overrides:
read
in classFilterInputStream
- Parameters:
buf
- the buffer into which the data is read.off
- the start offset of the data.len
- the maximum number of bytes read.- Returns:
- the total number of bytes read into the buffer, or
-1
if there is no more data because the end of the stream has been reached. - Throws:
IOException
- if an I/O error occurs.
-
markSupported
public boolean markSupported()Tests if this input stream supports marks. Currently this class does not support marks- Overrides:
markSupported
in classFilterInputStream
-
available
Returns the number of bytes that can be read from this input stream without blocking. However, this figure is only a close approximation in case the original encoded stream contains embedded CRLFs; since the CRLFs are discarded, not decoded- Overrides:
available
in classFilterInputStream
- Throws:
IOException
-
decode
public static byte[] decode(byte[] inbuf) Base64 decode a byte array. No line breaks are allowed. This method is suitable for short strings, such as those in the IMAP AUTHENTICATE protocol, but not to decode the entire content of a MIME part.- Parameters:
inbuf
- byte array to decode- Returns:
- decoded byte array NOTE: inbuf may only contain valid base64 characters. Whitespace is not ignored.
-