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 the
encoded` ByteBuffer.
`static void````
<span class="memberNameLink">
encode(java.nio.ByteBuffer raw,
java.nio.CharBuffer encoded)
``Performs Base64 encoding on the
rawByteBuffer, writing it to the
encoded` 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)`