org.postgresql.util
Class Base64

java.lang.Object
  extended by org.postgresql.util.Base64

public class Base64
extends Object

This code is a stripped down version of Robert Harder's Public Domain Base64 implementation. GZIP support, InputStream and OutputStream stuff and some unneeded encode/decode methods have been removed. -- Original comments follow -- 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.

Version:
2.1
Author:
Robert Harder, [email protected]

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 int NO_OPTIONS
          No options specified.
 
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(String s)
          Decodes data from Base64 notation, automatically detecting gzip-compressed data and decompressing it.
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.
 
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

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

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 Detail

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:
Base64 notation of input data
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:
Base64 notation
Since:
2.0
See Also:
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:
Base64 notation
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:
Base64 notation
Since:
2.0
See Also:
DONT_BREAK_LINES

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


Copyright © 2017 PostgreSQL Global Development Group. All rights reserved.