com.lowagie.text.pdf.codec
public class Base64 extends Object
Encodes and decodes to and from Base64 notation.
Homepage: http://iharder.net/base64.
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.
Version: 2.2.1
Nested Class Summary | |
---|---|
static class | Base64.InputStream
A InputStream will read data from another
java.io.InputStream, given in the constructor,
and encode/decode to/from Base64 notation on the fly.
|
static class | Base64.OutputStream
A OutputStream will write data to another
java.io.OutputStream, given in the constructor,
and encode/decode to/from Base64 notation on the fly.
|
Field Summary | |
---|---|
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 byte | EQUALS_SIGN The equals sign (=) as a byte. |
static byte | EQUALS_SIGN_ENC |
static int | GZIP Specify that data should be gzip-compressed. |
static int | MAX_LINE_LENGTH Maximum line length (76) of Base64 output. |
static byte | NEW_LINE The new line character (\n) as a byte. |
static int | NO_OPTIONS No options specified. |
static int | ORDERED
Encode using the special "ordered" dialect of Base64 described here:
http://www.faqs.org/qa/rfcc-1940.html. |
static String | PREFERRED_ENCODING Preferred encoding. |
static 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.
|
static byte | WHITE_SPACE_ENC |
static byte[] | _ORDERED_ALPHABET
I don't get the point of this technique, but it is described here:
http://www.faqs.org/qa/rfcc-1940.html. |
static byte[] | _ORDERED_DECODABET
Used in decoding the "ordered" dialect of Base64. |
static byte[] | _STANDARD_ALPHABET The 64 valid Base64 values. |
static byte[] | _STANDARD_DECODABET
Translates a Base64 value to either its 6-bit reconstruction value
or a negative number indicating some other meaning.
|
static byte[] | _URL_SAFE_ALPHABET
Used in the URL- and Filename-safe dialect described in Section 4 of RFC3548:
http://www.faqs.org/rfcs/rfc3548.html.
|
static byte[] | _URL_SAFE_DECODABET
Used in decoding URL- and Filename-safe dialects of Base64. |
Constructor Summary | |
---|---|
Base64() Defeats instantiation. |
Method Summary | |
---|---|
static byte[] | decode(byte[] source, int off, int len, int options)
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 byte[] | decode(String s, int options)
Decodes data from Base64 notation, automatically
detecting gzip-compressed data and decompressing it.
|
static int | decode4to3(byte[] source, int srcOffset, byte[] destination, int destOffset, int options)
Decodes four bytes from array source
and writes the resulting bytes (up to three of them)
to destination.
|
static void | decodeFileToFile(String infile, String outfile)
Reads infile and decodes it to outfile.
|
static byte[] | decodeFromFile(String filename)
Convenience method for reading a base64-encoded
file and decoding it.
|
static boolean | decodeToFile(String dataToDecode, String filename)
Convenience method for decoding data to a file.
|
static Object | decodeToObject(String encodedObject)
Attempts to decode Base64 data and deserialize a Java
Object within. |
static byte[] | encode3to4(byte[] b4, byte[] threeBytes, int numSigBytes, int options)
Encodes up to the first three bytes of array threeBytes
and returns a four-byte array in Base64 notation.
|
static byte[] | encode3to4(byte[] source, int srcOffset, int numSigBytes, byte[] destination, int destOffset, int options) Encodes up to three bytes of the array source and writes the resulting four Base64 bytes to destination. |
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 void | encodeFileToFile(String infile, String outfile)
Reads infile and encodes it to outfile.
|
static String | encodeFromFile(String filename)
Convenience method for reading a binary file
and base64-encoding it.
|
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. |
static boolean | encodeToFile(byte[] dataToEncode, String filename)
Convenience method for encoding data to a file.
|
static byte[] | getAlphabet(int options)
Returns one of the _SOMETHING_ALPHABET byte arrays depending on
the options specified.
|
static byte[] | getDecodabet(int options)
Returns one of the _SOMETHING_DECODABET byte arrays depending on
the options specified.
|
static void | main(String[] args)
Encodes or decodes two files from the command line;
feel free to delete this method (in fact you probably should)
if you're embedding this code into a larger program. |
static void | usage(String msg)
Prints command line usage.
|
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
Parameters: s the string to decode
Returns: the decoded data
Since: 1.4
Parameters: s the string to decode options encode options such as URL_SAFE
Returns: the decoded data
Since: 1.4
This is the lowest level of the decoding methods with all possible parameters.
Parameters: source the array to convert srcOffset the index where conversion begins destination the array to hold the conversion destOffset the index where output will be put options alphabet type is pulled from this (standard, url-safe, ordered)
Returns: the number of decoded bytes converted
Since: 1.3
Parameters: infile Input file outfile Output file
Since: 2.2
Parameters: filename Filename for reading encoded data
Returns: decoded byte array or null if unsuccessful
Since: 2.1
Parameters: dataToDecode Base64-encoded data as a string filename Filename for saving decoded data
Returns: true if successful, false otherwise
Since: 2.1
Parameters: encodedObject The Base64 data to decode
Returns: The decoded and deserialized object
Since: 1.5
Parameters: b4 A reusable byte array to reduce array instantiation threeBytes the array to convert numSigBytes the number of significant bytes in your array
Returns: four byte array in Base64 notation.
Since: 1.5.1
Encodes up to three bytes of the array source and writes the resulting four Base64 bytes to destination. The source and destination arrays can be manipulated anywhere along their length by specifying srcOffset and destOffset. This method does not check to make sure your arrays are large enough to accomodate srcOffset + 3 for the source array or destOffset + 4 for the destination array. The actual number of significant bytes in your array is given by numSigBytes.
This is the lowest level of the encoding methods with all possible parameters.
Parameters: source the array to convert srcOffset the index where conversion begins numSigBytes the number of significant bytes in your array destination the array to hold the conversion destOffset the index where output will be put
Returns: the destination array
Since: 1.3
Parameters: source The data to convert
Since: 1.4
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
Since: 2.0
See Also: GZIP DONT_BREAK_LINES
Parameters: source The data to convert off Offset in array where conversion should begin len Length of data to convert
Since: 1.4
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 alphabet type is pulled from this (standard, url-safe, ordered)
Since: 2.0
See Also: GZIP DONT_BREAK_LINES
Parameters: infile Input file outfile Output file
Since: 2.2
Parameters: filename Filename for reading binary data
Returns: base64-encoded string or null if unsuccessful
Since: 2.1
Parameters: serializableObject The object to encode
Returns: The Base64-encoded object
Since: 1.4
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 Specified options
Returns: The Base64-encoded object
Since: 2.0
See Also: GZIP DONT_BREAK_LINES
Parameters: dataToEncode byte array of data to encode in base64 form filename Filename for saving encoded data
Returns: true if successful, false otherwise
Since: 2.1
Parameters: msg A message to include with usage info.