Base64

com.anywherecommerce.android.sdk.util

Class Base64

  • java.lang.Object

  • com.anywherecommerce.android.sdk.util.Base64

  • public class <span class="typeNameLabel">Base64</span>
    extends java.lang.Object
    

Nested Class Summary

  Modifier and TypeClass and Description`static class ``<span class="memberNameLink">

Base64.InputStreamA [Base64.InputStream`](#com/anywherecommerce/android/sdk/util/Base64.InputStream.html "class in com.anywherecommerce.android.sdk.util") will read data from another java.io.InputStream, given in the constructor, and encode/decode to/from Base64 notation on the fly.

  `static class ``<span class="memberNameLink">

Base64.OutputStreamA [Base64.OutputStream`](#com/anywherecommerce/android/sdk/util/Base64.OutputStream.html "class in com.anywherecommerce.android.sdk.util") will write data to another java.io.OutputStream, given in the constructor, and encode/decode to/from Base64 notation on the fly.

Field Summary

  Modifier and TypeField and Description`static int``<span class="memberNameLink">

DECODE`Specify decoding in first bit.

  `static int``<span class="memberNameLink">

DO_BREAK_LINES`Do break lines when encoding.

  `static int``<span class="memberNameLink">

DONTGUNZIP`Specify that gzipped data should _not be automatically gunzipped.

  `static int``<span class="memberNameLink">

ENCODE`Specify encoding in first bit.

  `static int``<span class="memberNameLink">

GZIP`Specify that data should be gzip-compressed in second bit.

  `static int``<span class="memberNameLink">

NO_OPTIONS`No options specified.

  `static int``<span class="memberNameLink">

ORDERED`Encode using the special "ordered" dialect of Base64 described here: http://www.faqs.org/qa/rfcc-1940.html.

  `static int``<span class="memberNameLink">

URL_SAFE`Encode using Base64-like encoding that is URL- and Filename-safe as described in Section 4 of RFC3548: http://www.faqs.org/rfcs/rfc3548.html.

Method Summary

  Modifier and TypeMethod and Description`static byte[]``<span class="memberNameLink">

decode(byte[] source)`Low-level access to decoding ASCII characters in the form of a byte array.

  `static byte[]````
  <span class="memberNameLink">

decode(byte[] source,
int off,
int len,
int options)
```Low-level access to decoding ASCII characters in the form of a byte array.

  `static byte[]``<span class="memberNameLink">

decode(java.lang.String s)`Decodes data from Base64 notation, automatically detecting gzip-compressed data and decompressing it.

  `static byte[]````
  <span class="memberNameLink">

decode(java.lang.String s,
int options)
```Decodes data from Base64 notation, automatically detecting gzip-compressed data and decompressing it.

  `static void````
  <span class="memberNameLink">

decodeFileToFile(java.lang.String infile,
java.lang.String outfile)
```Reads infile and decodes it to outfile.

  `static byte[]``<span class="memberNameLink">

decodeFromFile(java.lang.String filename)`Convenience method for reading a base64-encoded file and decoding it.

  `static Bitmap``<span class="memberNameLink">

decodeImage(java.lang.String input) static void````

decodeToFile(java.lang.String dataToDecode,
java.lang.String filename)
```Convenience method for decoding data to a file.

  `static java.lang.Object``<span class="memberNameLink">

decodeToObject(java.lang.String encodedObject)`Attempts to decode Base64 data and deserialize a Java Object within.

  `static java.lang.Object````
  <span class="memberNameLink">

decodeToObject(java.lang.String encodedObject,
int options,
java.lang.ClassLoader loader)
```Attempts to decode Base64 data and deserialize a Java Object within.

  `static void````
  <span class="memberNameLink">

encode(java.nio.ByteBuffer raw,
java.nio.ByteBuffer encoded)
``Performs Base64 encoding on the rawByteBuffer, writing it to theencoded` ByteBuffer.

  `static void````
  <span class="memberNameLink">

encode(java.nio.ByteBuffer raw,
java.nio.CharBuffer encoded)
``Performs Base64 encoding on the rawByteBuffer, writing it to theencoded` CharBuffer.

  `static java.lang.String``<span class="memberNameLink">

encodeBytes(byte[] source)`Encodes a byte array into Base64 notation.

  `static java.lang.String````
  <span class="memberNameLink">

encodeBytes(byte[] source,
int options)
```Encodes a byte array into Base64 notation.

  `static java.lang.String````
  <span class="memberNameLink">

encodeBytes(byte[] source,
int off,
int len)
```Encodes a byte array into Base64 notation.

  `static java.lang.String````
  <span class="memberNameLink">

encodeBytes(byte[] source,
int off,
int len,
int options)
```Encodes a byte array into Base64 notation.

  `static byte[]``<span class="memberNameLink">

encodeBytesToBytes(byte[] source)Similar to [encodeBytes(byte[])`](#com/anywherecommerce/android/sdk/util/Base64.html#encodeBytes-byte:A-) but returns a byte array instead of instantiating a String.

  `static byte[]````
  <span class="memberNameLink">

encodeBytesToBytes(byte[] source,
int off,
int len,
int options)
``Similar to [encodeBytes(byte[], int, int, int)`](#com/anywherecommerce/android/sdk/util/Base64.html#encodeBytes-byte:A-int-int-int-) but returns a byte array instead of instantiating a String.

  `static void````
  <span class="memberNameLink">

encodeFileToFile(java.lang.String infile,
java.lang.String outfile)
```Reads infile and encodes it to outfile.

  `static java.lang.String``<span class="memberNameLink">

encodeFromFile(java.lang.String filename)`Convenience method for reading a binary file and base64-encoding it.

  `static java.lang.String``<span class="memberNameLink">

encodeImage(Bitmap image) static java.lang.String``

encodeObject(java.io.Serializable serializableObject)`Serializes an object and returns the Base64-encoded version of that serialized object.

  `static java.lang.String````
  <span class="memberNameLink">

encodeObject(java.io.Serializable serializableObject,
int options)
```Serializes an object and returns the Base64-encoded version of that serialized object.

  `static void````
  <span class="memberNameLink">

encodeToFile(byte[] dataToEncode,
java.lang.String filename)
```Convenience method for encoding data to a file.

Methods inherited from class java.lang.Object

        `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

NO_OPTIONS

        `public static final int NO_OPTIONS`No options specified. Value is zero.
        
        See Also:[Constant Field Values](#constant-values.html#com.anywherecommerce.android.sdk.util.Base64.NO_OPTIONS)

ENCODE

        `public static final int ENCODE`Specify encoding in first bit. Value is one.
        
        See Also:[Constant Field Values](#constant-values.html#com.anywherecommerce.android.sdk.util.Base64.ENCODE)

DECODE

        `public static final int DECODE`Specify decoding in first bit. Value is zero.
        
        See Also:[Constant Field Values](#constant-values.html#com.anywherecommerce.android.sdk.util.Base64.DECODE)

GZIP

        `public static final int GZIP`Specify that data should be gzip-compressed in second bit. Value is two.
        
        See Also:[Constant Field Values](#constant-values.html#com.anywherecommerce.android.sdk.util.Base64.GZIP)

DONT_GUNZIP

        `public static final int DONT_GUNZIP`Specify that gzipped data should _not_ be automatically gunzipped.
        
        See Also:[Constant Field Values](#constant-values.html#com.anywherecommerce.android.sdk.util.Base64.DONT_GUNZIP)

DO_BREAK_LINES

        `public static final int DO_BREAK_LINES`Do break lines when encoding. Value is 8.
        
        See Also:[Constant Field Values](#constant-values.html#com.anywherecommerce.android.sdk.util.Base64.DO_BREAK_LINES)

URL_SAFE

        `public static final int URL_SAFE`Encode using Base64-like encoding that is URL- and Filename-safe as described in Section 4 of RFC3548: <http://www.faqs.org/rfcs/rfc3548.html>. It is important to note that data encoded this way is _not_ officially valid Base64, or at the very least should not be called Base64 without also specifying that is was encoded using the URL- and Filename-safe dialect.
        
        See Also:[Constant Field Values](#constant-values.html#com.anywherecommerce.android.sdk.util.Base64.URL_SAFE)

ORDERED

        `public static final int ORDERED`Encode using the special "ordered" dialect of Base64 described here: <http://www.faqs.org/qa/rfcc-1940.html>.
        
        See Also:[Constant Field Values](#constant-values.html#com.anywherecommerce.android.sdk.util.Base64.ORDERED)

Method Detail

encode

        ```
        public static void encode(java.nio.ByteBuffer raw,
                                  java.nio.ByteBuffer encoded)
        ```
        Performs Base64 encoding on the `raw` ByteBuffer, writing it to the `encoded` ByteBuffer. This is an experimental feature. Currently it does not pass along any options (such as [`DO_BREAK_LINES`](#com/anywherecommerce/android/sdk/util/Base64.html#DO_BREAK_LINES) or [`GZIP`](#com/anywherecommerce/android/sdk/util/Base64.html#GZIP).
        
        Parameters:`raw` input buffer`encoded` output bufferSince:2.3

encode

        ```
        public static void encode(java.nio.ByteBuffer raw,
                                  java.nio.CharBuffer encoded)
        ```
        Performs Base64 encoding on the `raw` ByteBuffer, writing it to the `encoded` CharBuffer. This is an experimental feature. Currently it does not pass along any options (such as [`DO_BREAK_LINES`](#com/anywherecommerce/android/sdk/util/Base64.html#DO_BREAK_LINES) or [`GZIP`](#com/anywherecommerce/android/sdk/util/Base64.html#GZIP).
        
        Parameters:`raw` input buffer`encoded` output bufferSince:2.3

encodeObject

        ```
        public static java.lang.String encodeObject(java.io.Serializable serializableObject)
                                             throws java.io.IOException
        ```
        Serializes an object and returns the Base64-encoded version of that serialized object. As of v 2.3, if the object cannot be serialized or there is another error, the method will throw an java.io.IOException. **This is new to v2.3!** In earlier versions, it just returned a null value, but in retrospect that's a pretty poor way to handle it.
        
         The object is not GZip-compressed before being encoded.
        
        Parameters:`serializableObject` The object to encodeReturns:The Base64-encoded objectThrows:`java.io.IOException` if there is an error`java.lang.NullPointerException` if serializedObject is nullSince:1.4

encodeObject

        ```
        public static java.lang.String encodeObject(java.io.Serializable serializableObject,
                                                    int options)
                                             throws java.io.IOException
        ```
        Serializes an object and returns the Base64-encoded version of that serialized object. As of v 2.3, if the object cannot be serialized or there is another error, the method will throw an java.io.IOException. **This is new to v2.3!** In earlier versions, it just returned a null value, but in retrospect that's a pretty poor way to handle it.
        
         The object is not GZip-compressed before being encoded.  Example options:
        
        ```
        
           GZIP: gzip-compresses object before encoding it.
           DO_BREAK_LINES: break lines at 76 characters
         
        ```
         Example: `encodeObject( myObj, Base64.GZIP )` or
        
         Example: `encodeObject( myObj, Base64.GZIP | Base64.DO_BREAK_LINES )`
        
        
        
        Parameters:`serializableObject` The object to encode`options` Specified optionsReturns:The Base64-encoded objectThrows:`java.io.IOException` if there is an errorSince:2.0See Also:[`GZIP`](#com/anywherecommerce/android/sdk/util/Base64.html#GZIP), [`DO_BREAK_LINES`](#com/anywherecommerce/android/sdk/util/Base64.html#DO_BREAK_LINES)

encodeBytes

        `public static java.lang.String encodeBytes(byte[] source)`Encodes a byte array into Base64 notation. Does not GZip-compress data.
        
        Parameters:`source` The data to convertReturns:The data in Base64-encoded formThrows:`java.lang.NullPointerException` if source array is nullSince:1.4

encodeBytes

        ```
        public static java.lang.String encodeBytes(byte[] source,
                                                   int options)
                                            throws java.io.IOException
        ```
        Encodes a byte array into Base64 notation.  Example options:
        
        ```
        
           GZIP: gzip-compresses object before encoding it.
           DO_BREAK_LINES: break lines at 76 characters
             <i>Note: Technically, this makes your encoding non-compliant.</i>
         
        ```
         Example: `encodeBytes( myData, Base64.GZIP )` or
        
         Example: `encodeBytes( myData, Base64.GZIP | Base64.DO_BREAK_LINES )`
        
        As of v 2.3, if there is an error with the GZIP stream, the method will throw an java.io.IOException. **This is new to v2.3!** In earlier versions, it just returned a null value, but in retrospect that's a pretty poor way to handle it.
        
        
        
        Parameters:`source` The data to convert`options` Specified optionsReturns:The Base64-encoded data as a StringThrows:`java.io.IOException` if there is an error`java.lang.NullPointerException` if source array is nullSince:2.0See Also:[`GZIP`](#com/anywherecommerce/android/sdk/util/Base64.html#GZIP), [`DO_BREAK_LINES`](#com/anywherecommerce/android/sdk/util/Base64.html#DO_BREAK_LINES)

encodeBytes

        ```
        public static java.lang.String encodeBytes(byte[] source,
                                                   int off,
                                                   int len)
        ```
        Encodes a byte array into Base64 notation. Does not GZip-compress data. As of v 2.3, if there is an error, the method will throw an java.io.IOException. **This is new to v2.3!** In earlier versions, it just returned a null value, but in retrospect that's a pretty poor way to handle it.
        
        
        
        Parameters:`source` The data to convert`off` Offset in array where conversion should begin`len` Length of data to convertReturns:The Base64-encoded data as a StringThrows:`java.lang.NullPointerException` if source array is null`java.lang.IllegalArgumentException` if source array, offset, or length are invalidSince:1.4

encodeBytes

        ```
        public static java.lang.String encodeBytes(byte[] source,
                                                   int off,
                                                   int len,
                                                   int options)
                                            throws java.io.IOException
        ```
        Encodes a byte array into Base64 notation.  Example options:
        
        ```
        
           GZIP: gzip-compresses object before encoding it.
           DO_BREAK_LINES: break lines at 76 characters
             <i>Note: Technically, this makes your encoding non-compliant.</i>
         
        ```
         Example: `encodeBytes( myData, Base64.GZIP )` or
        
         Example: `encodeBytes( myData, Base64.GZIP | Base64.DO_BREAK_LINES )`
        
        As of v 2.3, if there is an error with the GZIP stream, the method will throw an java.io.IOException. **This is new to v2.3!** In earlier versions, it just returned a null value, but in retrospect that's a pretty poor way to handle it.
        
        
        
        Parameters:`source` The data to convert`off` Offset in array where conversion should begin`len` Length of data to convert`options` Specified optionsReturns:The Base64-encoded data as a StringThrows:`java.io.IOException` if there is an error`java.lang.NullPointerException` if source array is null`java.lang.IllegalArgumentException` if source array, offset, or length are invalidSince:2.0See Also:[`GZIP`](#com/anywherecommerce/android/sdk/util/Base64.html#GZIP), [`DO_BREAK_LINES`](#com/anywherecommerce/android/sdk/util/Base64.html#DO_BREAK_LINES)

encodeBytesToBytes

        `public static byte[] encodeBytesToBytes(byte[] source)`Similar to [`encodeBytes(byte[])`](#com/anywherecommerce/android/sdk/util/Base64.html#encodeBytes-byte:A-) but returns a byte array instead of instantiating a String. This is more efficient if you're working with I/O streams and have large data sets to encode.
        
        Parameters:`source` The data to convertReturns:The Base64-encoded data as a byte\[\] (of ASCII characters)Throws:`java.lang.NullPointerException` if source array is nullSince:2.3.1

encodeBytesToBytes

        ```
        public static byte[] encodeBytesToBytes(byte[] source,
                                                int off,
                                                int len,
                                                int options)
                                         throws java.io.IOException
        ```
        Similar to [`encodeBytes(byte[], int, int, int)`](#com/anywherecommerce/android/sdk/util/Base64.html#encodeBytes-byte:A-int-int-int-) but returns a byte array instead of instantiating a String. This is more efficient if you're working with I/O streams and have large data sets to encode.
        
        Parameters:`source` The data to convert`off` Offset in array where conversion should begin`len` Length of data to convert`options` Specified optionsReturns:The Base64-encoded data as a StringThrows:`java.io.IOException` if there is an error`java.lang.NullPointerException` if source array is null`java.lang.IllegalArgumentException` if source array, offset, or length are invalidSince:2.3.1See Also:[`GZIP`](#com/anywherecommerce/android/sdk/util/Base64.html#GZIP), [`DO_BREAK_LINES`](#com/anywherecommerce/android/sdk/util/Base64.html#DO_BREAK_LINES)

decode

        ```
        public static byte[] decode(byte[] source)
                             throws java.io.IOException
        ```
        Low-level access to decoding ASCII characters in the form of a byte array. **Ignores GUNZIP option, if it's set.** This is not generally a recommended method, although it is used internally as part of the decoding process. Special case: if len = 0, an empty array is returned. Still, if you need more speed and reduced memory footprint (and aren't gzipping), consider this method.
        
        Parameters:`source` The Base64 encoded dataReturns:decoded dataThrows:`java.io.IOException`Since:2.3.1

decode

        ```
        public static byte[] decode(byte[] source,
                                    int off,
                                    int len,
                                    int options)
                             throws java.io.IOException
        ```
        Low-level access to decoding ASCII characters in the form of a byte array. **Ignores GUNZIP option, if it's set.** This is not generally a recommended method, although it is used internally as part of the decoding process. Special case: if len = 0, an empty array is returned. Still, if you need more speed and reduced memory footprint (and aren't gzipping), consider this method.
        
        Parameters:`source` The Base64 encoded data`off` The offset of where to begin decoding`len` The length of characters to decode`options` Can specify options such as alphabet type to useReturns:decoded dataThrows:`java.io.IOException` If bogus characters exist in source dataSince:1.3

decode

        ```
        public static byte[] decode(java.lang.String s)
                             throws java.io.IOException
        ```
        Decodes data from Base64 notation, automatically detecting gzip-compressed data and decompressing it.
        
        Parameters:`s` the string to decodeReturns:the decoded dataThrows:`java.io.IOException` If there is a problemSince:1.4

decode

        ```
        public static byte[] decode(java.lang.String s,
                                    int options)
                             throws java.io.IOException
        ```
        Decodes data from Base64 notation, automatically detecting gzip-compressed data and decompressing it.
        
        Parameters:`s` the string to decode`options` encode options such as URL\_SAFEReturns:the decoded dataThrows:`java.io.IOException` if there is an error`java.lang.NullPointerException` if s is nullSince:1.4

decodeToObject

        ```
        public static java.lang.Object decodeToObject(java.lang.String encodedObject)
                                               throws java.io.IOException,
                                                      java.lang.ClassNotFoundException
        ```
        Attempts to decode Base64 data and deserialize a Java Object within. Returns null if there was an error.
        
        Parameters:`encodedObject` The Base64 data to decodeReturns:The decoded and deserialized objectThrows:`java.lang.NullPointerException` if encodedObject is null`java.io.IOException` if there is a general error`java.lang.ClassNotFoundException` if the decoded object is of a class that cannot be found by the JVMSince:1.5

decodeToObject

        ```
        public static java.lang.Object decodeToObject(java.lang.String encodedObject,
                                                      int options,
                                                      java.lang.ClassLoader loader)
                                               throws java.io.IOException,
                                                      java.lang.ClassNotFoundException
        ```
        Attempts to decode Base64 data and deserialize a Java Object within. Returns null if there was an error. If loader is not null, it will be the class loader used when deserializing.
        
        Parameters:`encodedObject` The Base64 data to decode`options` Various parameters related to decoding`loader` Optional class loader to use in deserializing classes.Returns:The decoded and deserialized objectThrows:`java.lang.NullPointerException` if encodedObject is null`java.io.IOException` if there is a general error`java.lang.ClassNotFoundException` if the decoded object is of a class that cannot be found by the JVMSince:2.3.4

encodeToFile

        ```
        public static void encodeToFile(byte[] dataToEncode,
                                        java.lang.String filename)
                                 throws java.io.IOException
        ```
        Convenience method for encoding data to a file. As of v 2.3, if there is a error, the method will throw an java.io.IOException. **This is new to v2.3!** In earlier versions, it just returned false, but in retrospect that's a pretty poor way to handle it.
        
        
        
        Parameters:`dataToEncode` byte array of data to encode in base64 form`filename` Filename for saving encoded dataThrows:`java.io.IOException` if there is an error`java.lang.NullPointerException` if dataToEncode is nullSince:2.1

decodeToFile

        ```
        public static void decodeToFile(java.lang.String dataToDecode,
                                        java.lang.String filename)
                                 throws java.io.IOException
        ```
        Convenience method for decoding data to a file. As of v 2.3, if there is a error, the method will throw an java.io.IOException. **This is new to v2.3!** In earlier versions, it just returned false, but in retrospect that's a pretty poor way to handle it.
        
        
        
        Parameters:`dataToDecode` Base64-encoded data as a string`filename` Filename for saving decoded dataThrows:`java.io.IOException` if there is an errorSince:2.1

decodeFromFile

        ```
        public static byte[] decodeFromFile(java.lang.String filename)
                                     throws java.io.IOException
        ```
        Convenience method for reading a base64-encoded file and decoding it. As of v 2.3, if there is a error, the method will throw an java.io.IOException. **This is new to v2.3!** In earlier versions, it just returned false, but in retrospect that's a pretty poor way to handle it.
        
        
        
        Parameters:`filename` Filename for reading encoded dataReturns:decoded byte arrayThrows:`java.io.IOException` if there is an errorSince:2.1

encodeFromFile

        ```
        public static java.lang.String encodeFromFile(java.lang.String filename)
                                               throws java.io.IOException
        ```
        Convenience method for reading a binary file and base64-encoding it. As of v 2.3, if there is a error, the method will throw an java.io.IOException. **This is new to v2.3!** In earlier versions, it just returned false, but in retrospect that's a pretty poor way to handle it.
        
        
        
        Parameters:`filename` Filename for reading binary dataReturns:base64-encoded stringThrows:`java.io.IOException` if there is an errorSince:2.1

encodeFileToFile

        ```
        public static void encodeFileToFile(java.lang.String infile,
                                            java.lang.String outfile)
                                     throws java.io.IOException
        ```
        Reads infile and encodes it to outfile.
        
        Parameters:`infile` Input file`outfile` Output fileThrows:`java.io.IOException` if there is an errorSince:2.2

decodeFileToFile

        ```
        public static void decodeFileToFile(java.lang.String infile,
                                            java.lang.String outfile)
                                     throws java.io.IOException
        ```
        Reads infile and decodes it to outfile.
        
        Parameters:`infile` Input file`outfile` Output fileThrows:`java.io.IOException` if there is an errorSince:2.2

encodeImage

        `public static java.lang.String encodeImage(Bitmap image)`

decodeImage

        `public static Bitmap decodeImage(java.lang.String input)`