|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectxtom.parser.util.Base64
Encodes and decodes to and from Base64 notation.
Change Log:
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.
| Nested Class Summary | |
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 | |
private static byte[] |
_NATIVE_ALPHABET
|
private static byte[] |
ALPHABET
The 64 valid Base64 values. |
private static byte |
BAD_ENCODING
|
private static byte[] |
DECODABET
Translates a Base64 value to either its 6-bit reconstruction value or a negative number indicating some other meaning. |
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. |
private static byte |
EQUALS_SIGN
The equals sign (=) as a byte. |
private static byte |
EQUALS_SIGN_ENC
|
static int |
GZIP
Specify that data should be gzip-compressed. |
private static int |
MAX_LINE_LENGTH
Maximum line length (76) of Base64 output. |
private static byte |
NEW_LINE
The new line character (\n) as a byte. |
static int |
NO_OPTIONS
No options specified. |
private static java.lang.String |
PREFERRED_ENCODING
Preferred encoding. |
private static byte |
WHITE_SPACE_ENC
|
| Constructor Summary | |
private |
Base64()
Defeats instantiation. |
| Method Summary | |
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(java.lang.String s)
Decodes data from Base64 notation, automatically detecting gzip-compressed data and decompressing it. |
private static byte[] |
decode4to3(byte[] fourBytes)
Decodes the first four bytes of array fourBytes and returns an array up to three bytes long with the decoded values. |
private static int |
decode4to3(byte[] source,
int srcOffset,
byte[] destination,
int destOffset)
Decodes four bytes from array source and writes the resulting bytes (up to three of them) to destination. |
static java.lang.Object |
decodeToObject(java.lang.String encodedObject)
Attempts to decode Base64 data and deserialize a Java Object within. |
private static byte[] |
encode3to4(byte[] threeBytes)
Encodes the first three bytes of array threeBytes and returns a four-byte array in Base64 notation. |
private static byte[] |
encode3to4(byte[] b4,
byte[] threeBytes,
int numSigBytes)
Encodes up to the first three bytes of array threeBytes and returns a four-byte array in Base64 notation. |
private static byte[] |
encode3to4(byte[] threeBytes,
int numSigBytes)
Encodes up to the first three bytes of array threeBytes and returns a four-byte array in Base64 notation. |
private static byte[] |
encode3to4(byte[] source,
int srcOffset,
int numSigBytes,
byte[] destination,
int destOffset)
Encodes up to three bytes of the array source and writes the resulting four Base64 bytes to destination. |
static java.lang.String |
encodeBytes(byte[] source)
Encodes a byte array into Base64 notation. |
static java.lang.String |
encodeBytes(byte[] source,
int options)
Encodes a byte array into Base64 notation. |
static java.lang.String |
encodeBytes(byte[] source,
int off,
int len)
Encodes a byte array into Base64 notation. |
static java.lang.String |
encodeBytes(byte[] source,
int off,
int len,
int options)
Encodes a byte array into Base64 notation. |
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 |
encodeObject(java.io.Serializable serializableObject,
int options)
Serializes an object and returns the Base64-encoded version of that serialized object. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final int NO_OPTIONS
public static final int ENCODE
public static final int DECODE
public static final int GZIP
public static final int DONT_BREAK_LINES
private static final int MAX_LINE_LENGTH
private static final byte EQUALS_SIGN
private static final byte NEW_LINE
private static final java.lang.String PREFERRED_ENCODING
private static final byte[] ALPHABET
private static final byte[] _NATIVE_ALPHABET
private static final byte[] DECODABET
private static final byte BAD_ENCODING
private static final byte WHITE_SPACE_ENC
private static final byte EQUALS_SIGN_ENC
| Constructor Detail |
private Base64()
| Method Detail |
private static byte[] encode3to4(byte[] threeBytes)
threeBytes - the array to convert
private static byte[] encode3to4(byte[] threeBytes,
int numSigBytes)
threeBytes - the array to convertnumSigBytes - the number of significant bytes in your array
private static byte[] encode3to4(byte[] b4,
byte[] threeBytes,
int numSigBytes)
b4 - A reusable byte array to reduce array instantiationthreeBytes - the array to convertnumSigBytes - the number of significant bytes in your array
private static byte[] encode3to4(byte[] source,
int srcOffset,
int numSigBytes,
byte[] destination,
int destOffset)
source - the array to convertsrcOffset - the index where conversion beginsnumSigBytes - the number of significant bytes in your arraydestination - the array to hold the conversiondestOffset - the index where output will be put
public static java.lang.String encodeObject(java.io.Serializable serializableObject)
serializableObject - The object to encode
public static java.lang.String encodeObject(java.io.Serializable serializableObject,
int options)
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 )
serializableObject - The object to encode
GZIP,
DONT_BREAK_LINESpublic static java.lang.String encodeBytes(byte[] source)
source - The data to convert
public static java.lang.String encodeBytes(byte[] source,
int options)
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 )
source - The data to convertoptions - Specified optionsGZIP,
DONT_BREAK_LINES
public static java.lang.String encodeBytes(byte[] source,
int off,
int len)
source - The data to convertoff - Offset in array where conversion should beginlen - Length of data to convert
public static java.lang.String encodeBytes(byte[] source,
int off,
int len,
int options)
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 )
source - The data to convertoff - Offset in array where conversion should beginlen - Length of data to convertoptions - Specified optionsGZIP,
DONT_BREAK_LINESprivate static byte[] decode4to3(byte[] fourBytes)
fourBytes - the array with Base64 content
private static int decode4to3(byte[] source,
int srcOffset,
byte[] destination,
int destOffset)
source - the array to convertsrcOffset - the index where conversion beginsdestination - the array to hold the conversiondestOffset - the index where output will be put
public static byte[] decode(byte[] source,
int off,
int len)
source - The Base64 encoded dataoff - The offset of where to begin decodinglen - The length of characters to decode
public static byte[] decode(java.lang.String s)
s - the string to decode
public static java.lang.Object decodeToObject(java.lang.String encodedObject)
encodedObject - The Base64 data to decode
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||