java.lang.Object
org.graffiti.plugins.ios.importers.graphml.parser.Base64

public class Base64
extends Object
Encodes and decodes to and from Base64 notation.

I am placing this code in the Public Domain. Do with it as you will. This software comes with no guarantees or warranties but with plenty of well-wishing instead! Please visit http://iharder.net/base64 periodically to check for updates or to contribute improvements.

Version:
2.0
Author:
Robert Harder
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static class  Base64.InputStream
    A Base64.InputStream will read data from another InputStream, given in the constructor, and encode/decode to/from Base64 notation on the fly.
    static class  Base64.OutputStream
    A Base64.OutputStream will write data to another OutputStream, given in the constructor, and encode/decode to/from Base64 notation on the fly.
  • Field Summary

    Fields
    Modifier and Type Field Description
    static int DECODE
    Specify decoding.
    static int DONT_BREAK_LINES
    Don't break lines when encoding (violates strict Base64 specification)
    static int ENCODE
    Specify encoding.
    static int GZIP
    Specify that data should be gzip-compressed.
    static int NO_OPTIONS
    No options specified.
  • Method Summary

    Modifier and Type Method Description
    static byte[] decode​(byte[] source, int off, int len)
    Very low-level access to decoding ASCII characters in the form of a byte array.
    static byte[] decode​(String s)
    Decodes data from Base64 notation, automatically detecting gzip-compressed data and decompressing it.
    static Object decodeToObject​(String encodedObject)
    Attempts to decode Base64 data and deserialize a Java Object within.
    static String encodeBytes​(byte[] source)
    Encodes a byte array into Base64 notation.
    static String encodeBytes​(byte[] source, int options)
    Encodes a byte array into Base64 notation.
    static String encodeBytes​(byte[] source, int off, int len)
    Encodes a byte array into Base64 notation.
    static String encodeBytes​(byte[] source, int off, int len, int options)
    Encodes a byte array into Base64 notation.
    static String encodeObject​(Serializable serializableObject)
    Serializes an object and returns the Base64-encoded version of that serialized object.
    static String encodeObject​(Serializable serializableObject, int options)
    Serializes an object and returns the Base64-encoded version of that serialized object.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • NO_OPTIONS

      public static final int NO_OPTIONS
      No options specified. Value is zero.
      See Also:
      Constant Field Values
    • ENCODE

      public static final int ENCODE
      Specify encoding.
      See Also:
      Constant Field Values
    • DECODE

      public static final int DECODE
      Specify decoding.
      See Also:
      Constant Field Values
    • GZIP

      public static final int GZIP
      Specify that data should be gzip-compressed.
      See Also:
      Constant Field Values
    • DONT_BREAK_LINES

      public static final int DONT_BREAK_LINES
      Don't break lines when encoding (violates strict Base64 specification)
      See Also:
      Constant Field Values
  • Method Details

    • decode

      public static byte[] decode​(byte[] source, int off, int len)
      Very low-level access to decoding ASCII characters in the form of a byte array. Does not support automatically gunzipping or any other "fancy" features.
      Parameters:
      source - The Base64 encoded data
      off - The offset of where to begin decoding
      len - The length of characters to decode
      Returns:
      decoded data
      Since:
      1.3
    • decode

      public static byte[] decode​(String s)
      Decodes data from Base64 notation, automatically detecting gzip-compressed data and decompressing it.
      Parameters:
      s - the string to decode
      Returns:
      the decoded data
      Since:
      1.4
    • decodeToObject

      public static Object decodeToObject​(String encodedObject)
      Attempts to decode Base64 data and deserialize a Java Object within. Returns null if there was an error.
      Parameters:
      encodedObject - The Base64 data to decode
      Returns:
      The decoded and deserialized object
      Since:
      1.5
    • encodeBytes

      public static String encodeBytes​(byte[] source)
      Encodes a byte array into Base64 notation. Does not GZip-compress data.
      Parameters:
      source - The data to convert
      Returns:
      DOCUMENT ME!
      Since:
      1.4
    • encodeBytes

      public static String encodeBytes​(byte[] source, int options)
      Encodes a byte array into Base64 notation.

      Valid options:

         GZIP: gzip-compresses object before encoding it.
         DONT_BREAK_LINES: don't break lines at 76 characters
           Note: Technically, this makes your encoding non-compliant.
       

      Example: encodeBytes( myData, Base64.GZIP ) or

      Example: encodeBytes( myData, Base64.GZIP | Base64.DONT_BREAK_LINES )

      Parameters:
      source - The data to convert
      options - Specified options
      Returns:
      DOCUMENT ME!
      Since:
      2.0
      See Also:
      GZIP, DONT_BREAK_LINES
    • encodeBytes

      public static String encodeBytes​(byte[] source, int off, int len)
      Encodes a byte array into Base64 notation. Does not GZip-compress data.
      Parameters:
      source - The data to convert
      off - Offset in array where conversion should begin
      len - Length of data to convert
      Returns:
      DOCUMENT ME!
      Since:
      1.4
    • encodeBytes

      public static String encodeBytes​(byte[] source, int off, int len, int options)
      Encodes a byte array into Base64 notation.

      Valid options:

         GZIP: gzip-compresses object before encoding it.
         DONT_BREAK_LINES: don't break lines at 76 characters
           Note: Technically, this makes your encoding non-compliant.
       

      Example: encodeBytes( myData, Base64.GZIP ) or

      Example: encodeBytes( myData, Base64.GZIP | Base64.DONT_BREAK_LINES )

      Parameters:
      source - The data to convert
      off - Offset in array where conversion should begin
      len - Length of data to convert
      options - Specified options
      Returns:
      DOCUMENT ME!
      Since:
      2.0
      See Also:
      GZIP, DONT_BREAK_LINES
    • encodeObject

      public static String encodeObject​(Serializable serializableObject)
      Serializes an object and returns the Base64-encoded version of that serialized object. If the object cannot be serialized or there is another error, the method will return null. The object is not GZip-compressed before being encoded.
      Parameters:
      serializableObject - The object to encode
      Returns:
      The Base64-encoded object
      Since:
      1.4
    • encodeObject

      public static String encodeObject​(Serializable serializableObject, int options)
      Serializes an object and returns the Base64-encoded version of that serialized object. If the object cannot be serialized or there is another error, the method will return null.

      Valid options:

         GZIP: gzip-compresses object before encoding it.
         DONT_BREAK_LINES: don't break lines at 76 characters
           Note: Technically, this makes your encoding non-compliant.
       

      Example: encodeObject( myObj, Base64.GZIP ) or

      Example: encodeObject( myObj, Base64.GZIP | Base64.DONT_BREAK_LINES )

      Parameters:
      serializableObject - The object to encode
      options - DOCUMENT ME!
      Returns:
      The Base64-encoded object
      Since:
      2.0
      See Also:
      GZIP, DONT_BREAK_LINES