Skip to content

Most visited

Recently visited

navigation

Base64.Decoder

public static class Base64.Decoder
extends Object

java.lang.Object
   ↳ java.util.Base64.Decoder


This class implements a decoder for decoding byte data using the Base64 encoding scheme as specified in RFC 4648 and RFC 2045.

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.

See also:

Summary

Public methods

byte[] decode(String src)

Decodes a Base64 encoded String into a newly-allocated byte array using the Base64 encoding scheme.

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.

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.

ByteBuffer decode(ByteBuffer buffer)

Decodes all bytes from the input byte buffer using the Base64 encoding scheme, writing the results into a newly-allocated ByteBuffer.

InputStream wrap(InputStream is)

Returns an input stream for decoding Base64 encoded byte stream.

Inherited methods

From class java.lang.Object

Public methods

decode

added in API level 26
byte[] decode (String src)

Decodes a Base64 encoded String into a newly-allocated byte array using the Base64 encoding scheme.

An invocation of this method has exactly the same effect as invoking decode(src.getBytes(StandardCharsets.ISO_8859_1))

Parameters
src String: the string to decode

Returns
byte[] A newly-allocated byte array containing the decoded bytes.

Throws
IllegalArgumentException if src is not in valid Base64 scheme

decode

added in API level 26
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.

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.

Parameters
src byte: the byte array to decode

dst byte: the output byte array

Returns
int The number of bytes written to the output byte array

Throws
IllegalArgumentException if src is not in valid Base64 scheme, or dst does not have enough space for decoding all input bytes.

decode

added in API level 26
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. The returned byte array is of the length of the resulting bytes.

Parameters
src byte: the byte array to decode

Returns
byte[] A newly-allocated byte array containing the decoded bytes.

Throws
IllegalArgumentException if src is not in valid Base64 scheme

decode

added in API level 26
ByteBuffer decode (ByteBuffer buffer)

Decodes all bytes from the input byte buffer using the 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.

Parameters
buffer ByteBuffer: the ByteBuffer to decode

Returns
ByteBuffer A newly-allocated byte buffer containing the decoded bytes

Throws
IllegalArgumentException if src is not in valid Base64 scheme.

wrap

added in API level 26
InputStream wrap (InputStream is)

Returns an input stream for decoding 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.

Parameters
is InputStream: the input stream

Returns
InputStream the input stream for decoding the specified Base64 encoded byte stream

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)