Java 8 – Base64

  • Post author:
  • Post category:Java 8
  • Post comments:0 Comments
Java 8 - Base64

This topic is about Java 8 – Base64.

With Java 8, Base64 has finally got its due. Java 8 now has inbuilt encoder and decoder for Base64 encoding. In Java 8, we can use three types of Base64 encoding.

  • Simple โˆ’ Output is mapped to a set of characters lying in A-Za-z0-9+/. The encoder does not add any line feed in output, and the decoder rejects any character other than A-Za-z0-9+/.
  • URL โˆ’ Output is mapped to set of characters lying in A-Za-z0-9+_. Output is URL and filename safe.
  • MIME โˆ’ Output is mapped to MIME friendly format. Output is represented in lines of no more than 76 characters each, and uses a carriage return ‘\r’ followed by a linefeed ‘\n’ as the line separator. No line separator is present to the end of the encoded output.

Nested Classes

Sr.No.Nested class & Description
1static class Base64.DecoderThis class implements a decoder for decoding byte data using the Base64 encoding scheme as specified in RFC 4648 and RFC 2045.
2static class Base64.EncoderThis class implements an encoder for encoding byte data using the Base64 encoding scheme as specified in RFC 4648 and RFC 2045.

Methods

Sr.No.Method Name & Description
1static Base64.Decoder getDecoder()Returns a Base64.Decoder that decodes using the Basic type base64 encoding scheme.
2static Base64.Encoder getEncoder()Returns a Base64.Encoder that encodes using the Basic type base64 encoding scheme.
3static Base64.Decoder getMimeDecoder()Returns a Base64.Decoder that decodes using the MIME type base64 decoding scheme.
4static Base64.Encoder getMimeEncoder()Returns a Base64.Encoder that encodes using the MIME type base64 encoding scheme.
5static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator)Returns a Base64.Encoder that encodes using the MIME type base64 encoding scheme with specified line length and line separators.
6static Base64.Decoder getUrlDecoder()Returns a Base64.Decoder that decodes using the URL and Filename safe type base64 encoding scheme.
7static Base64.Encoder getUrlEncoder()Returns a Base64.Encoder that encodes using the URL and Filename safe type base64 encoding scheme.

Methods Inherited

This class inherits methods from the following class โˆ’

  • java.lang.Object

Base64 Example

Create the following Java program using any editor of your choice in say C:/> JAVA.

Java8Tester.java

import java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;

public class HelloWorld {

   public static void main(String args[]) {

      try {
		
         // Encode using basic encoder
         String base64encodedString = Base64.getEncoder().encodeToString(
            "Adglob?java8".getBytes("utf-8"));
         System.out.println("Base64 Encoded String (Basic) :" + base64encodedString);
		
         // Decode
         byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
		
         System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
         base64encodedString = Base64.getUrlEncoder().encodeToString(
            "Adglob?java8".getBytes("utf-8"));
         System.out.println("Base64 Encoded String (URL) :" + base64encodedString);
		
         StringBuilder stringBuilder = new StringBuilder();
		
         for (int i = 0; i < 10; ++i) {
            stringBuilder.append(UUID.randomUUID().toString());
         }
		
         byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8");
         String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes);
         System.out.println("Base64 Encoded String (MIME) :" + mimeEncodedString);

      } catch(UnsupportedEncodingException e) {
         System.out.println("Error :" + e.getMessage());
      }
   }
}

Verify the Result

Compile the class using javac compiler as follows โˆ’

C:\JAVA>javac Java8Tester.java

Now run the Java8Tester as follows โˆ’

C:\JAVA>java Java8Tester

It should produce the following output โˆ’

Base64 Encoded String (Basic) :VHV0b3JpYWxzUG9pbnQ/amF2YTg=
Original String: Adglob?java8
Base64 Encoded String (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 Encoded String (MIME) :YmU3NWY2ODktNGM5YS00ODlmLWI2MTUtZTVkOTk2YzQ1Njk1Y2EwZTg2OTEtMmRiZC00YTQ1LWJl
NTctMTI1MWUwMTk0ZWQyNDE0NDAwYjgtYTYxOS00NDY5LTllYTctNjc1YzE3YWJhZTk1MTQ2MDQz
NDItOTAyOC00ZWI0LThlOTYtZWU5YzcwNWQyYzVhMTQxMWRjYTMtY2MwNi00MzU0LTg0MTgtNGQ1
MDkwYjdiMzg2ZTY0OWU5MmUtZmNkYS00YWEwLTg0MjQtYThiOTQxNDQ2YzhhNTVhYWExZjItNjU2
Mi00YmM4LTk2ZGYtMDE4YmY5ZDZhMjkwMzM3MWUzNDMtMmQ3MS00MDczLWI0Y2UtMTQxODE0MGU5
YjdmYTVlODUxYzItN2NmOS00N2UyLWIyODQtMThlMWVkYTY4M2Q1YjE3YTMyYmItZjllMS00MTFk
LWJiM2UtM2JhYzUxYzI5OWI4

In this topic we learned about Java 8 – Base64. To learn more, Click Here.

Leave a Reply