public static class Base64.Decoder
extends java.lang.Object
The Base64 padding character '='
is accepted and interpreted as
the end of the encoded byte data, but is not required. So if the final
unit of the encoded byte data only has two or three Base64 characters
(without the corresponding padding character(s) padded), they are decoded
as if followed by padding character(s). If there is a padding character
present in the final unit, the correct number of padding character(s)
must be present, otherwise IllegalArgumentException
(
IOException
when reading from a Base64 stream) is thrown during
decoding.
Instances of Base64.Decoder
class are safe for use by multiple
concurrent threads.
Unless otherwise noted, passing a null
argument to a method of
this class will cause a NullPointerException
to be thrown.
Base64.Encoder
Modifier and Type | Method and Description |
---|---|
byte[] |
decode(byte[] src)
Decodes all bytes from the input byte array using the
Base64
encoding scheme, writing the results into a newly-allocated output
byte array. |
int |
decode(byte[] src,
byte[] dst)
Decodes all bytes from the input byte array using the
Base64
encoding scheme, writing the results into the given output byte
array, starting at offset 0. |
java.nio.ByteBuffer |
decode(java.nio.ByteBuffer buffer)
Decodes all bytes from the input byte buffer using the
Base64
encoding scheme, writing the results into a newly-allocated
ByteBuffer. |
byte[] |
decode(java.lang.String src)
Decodes a Base64 encoded String into a newly-allocated byte array
using the
Base64 encoding scheme. |
java.io.InputStream |
wrap(java.io.InputStream is)
Returns an input stream for decoding
Base64 encoded byte
stream. |
public byte[] decode(byte[] src)
Base64
encoding scheme, writing the results into a newly-allocated output
byte array. The returned byte array is of the length of the resulting
bytes.src
- the byte array to decodejava.lang.IllegalArgumentException
- if src
is not in valid
Base64 schemepublic byte[] decode(java.lang.String src)
Base64
encoding scheme.
An invocation of this method has exactly the same effect as invoking
decode(src.getBytes(StandardCharsets.ISO_8859_1))
src
- the string to decodejava.lang.IllegalArgumentException
- if src
is not in valid
Base64 schemepublic int decode(byte[] src, byte[] dst)
Base64
encoding scheme, writing the results into the given output byte
array, starting at offset 0.
It is the responsibility of the invoker of this method to make sure
the output byte array dst
has enough space for decoding all
bytes from the input byte array. No bytes will be be written to the
output byte array if the output byte array is not big enough.
If the input byte array is not in valid Base64 encoding scheme then some bytes may have been written to the output byte array before IllegalargumentException is thrown.
src
- the byte array to decodedst
- the output byte arrayjava.lang.IllegalArgumentException
- if src
is not in valid
Base64 scheme, or dst
does not have enough space for decoding
all input bytes.public java.nio.ByteBuffer decode(java.nio.ByteBuffer buffer)
Base64
encoding scheme, writing the results into a newly-allocated
ByteBuffer.
Upon return, the source buffer's position will be updated to its limit; its limit will not have been changed. The returned output buffer's position will be zero and its limit will be the number of resulting decoded bytes
IllegalArgumentException
is thrown if the input buffer is not
in valid Base64 encoding scheme. The position of the input buffer
will not be advanced in this case.
buffer
- the ByteBuffer to decodejava.lang.IllegalArgumentException
- if src
is not in valid
Base64 scheme.public java.io.InputStream wrap(java.io.InputStream is)
Base64
encoded byte
stream.
The read
methods of the returned InputStream
will
throw IOException
when reading bytes that cannot be decoded.
Closing the returned input stream will close the underlying input stream.
is
- the input stream