@GwtCompatible(emulated=true) public abstract class BaseEncoding extends Object
 BaseEncoding.base32().encode("foo".getBytes(Charsets.US_ASCII))
 
 returns the string "MZXW6===", and
 
 byte[] decoded = BaseEncoding.base32().decode("MZXW6===");
 
 ...returns the ASCII bytes of the string "foo".
 
By default, BaseEncoding's behavior is relatively strict and in accordance with RFC
 4648. Decoding rejects characters in the wrong case, though padding is optional. To modify
 encoding and decoding behavior, use configuration methods to obtain a new encoding with modified
 behavior:
 
 BaseEncoding.base16().lowerCase().decode("deadbeef");
 
 Warning: BaseEncoding instances are immutable. Invoking a configuration method has no effect on the receiving instance; you must store and use the new encoding instance it returns, instead.
 // Do NOT do this
 BaseEncoding hex = BaseEncoding.base16();
 hex.lowerCase(); // does nothing!
 return hex.decode("deadbeef"); // throws an IllegalArgumentException
 
 It is guaranteed that encoding.decode(encoding.encode(x)) is always equal to x, but the reverse does not necessarily hold.
 
| Encoding | Alphabet | char:byte ratio
  | Default padding | Comments | 
|---|---|---|---|---|
base16()
  | 0-9 A-F | 2.00 | N/A | Traditional hexadecimal. Defaults to upper case. | 
base32()
  | A-Z 2-7 | 1.60 | = | Human-readable; no possibility of mixing up 0/O or 1/I. Defaults to upper case. | 
base32Hex()
  | 0-9 A-V | 1.60 | = | "Numerical" base 32; extended from the traditional hex alphabet. Defaults to upper case. | 
base64()
  | A-Z a-z 0-9 + / | 1.33 | = | |
base64Url()
  | A-Z a-z 0-9 - _ | 1.33 | = | Safe to use as filenames, or to pass in URLs without escaping | 
All instances of this class are immutable, so they may be stored safely as static constants.
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
BaseEncoding.DecodingException
Exception indicating invalid base-encoded input encountered while decoding. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
static BaseEncoding | 
base16()
The "base16" encoding specified by RFC
 4648 section 8, Base 16 Encoding. 
 | 
static BaseEncoding | 
base32()
The "base32" encoding specified by RFC
 4648 section 6, Base 32 Encoding. 
 | 
static BaseEncoding | 
base32Hex()
The "base32hex" encoding specified by RFC 4648 section 7, Base 32 Encoding
 with Extended Hex Alphabet. 
 | 
static BaseEncoding | 
base64()
The "base64" base encoding specified by RFC 4648 section 4, Base 64 Encoding. 
 | 
static BaseEncoding | 
base64Url()
The "base64url" encoding specified by RFC 4648 section 5, Base 64 Encoding
 with URL and Filename Safe Alphabet, also sometimes referred to as the "web safe Base64." (This
 is the same as the base 64 encoding with URL and filename safe alphabet from RFC 3548.) 
 | 
abstract boolean | 
canDecode(CharSequence chars)
Determines whether the specified character sequence is a valid encoded string according to this
 encoding. 
 | 
byte[] | 
decode(CharSequence chars)
Decodes the specified character sequence, and returns the resulting  
byte[]. | 
ByteSource | 
decodingSource(CharSource encodedSource)
Returns a  
ByteSource that reads base-encoded bytes from the specified CharSource. | 
abstract InputStream | 
decodingStream(Reader reader)
Returns an  
InputStream that decodes base-encoded input from the specified Reader. | 
String | 
encode(byte[] bytes)
Encodes the specified byte array, and returns the encoded  
String. | 
String | 
encode(byte[] bytes,
      int off,
      int len)
Encodes the specified range of the specified byte array, and returns the encoded  
String. | 
ByteSink | 
encodingSink(CharSink encodedSink)
Returns a  
ByteSink that writes base-encoded bytes to the specified CharSink. | 
abstract OutputStream | 
encodingStream(Writer writer)
Returns an  
OutputStream that encodes bytes using this encoding into the specified
 Writer. | 
abstract BaseEncoding | 
lowerCase()
Returns an encoding that behaves equivalently to this encoding, but encodes and decodes with
 lowercase letters. 
 | 
abstract BaseEncoding | 
omitPadding()
Returns an encoding that behaves equivalently to this encoding, but omits any padding
 characters as specified by RFC 4648
 section 3.2, Padding of Encoded Data. 
 | 
abstract BaseEncoding | 
upperCase()
Returns an encoding that behaves equivalently to this encoding, but encodes and decodes with
 uppercase letters. 
 | 
abstract BaseEncoding | 
withPadChar(char padChar)
Returns an encoding that behaves equivalently to this encoding, but uses an alternate character
 for padding. 
 | 
abstract BaseEncoding | 
withSeparator(String separator,
             int n)
Returns an encoding that behaves equivalently to this encoding, but adds a separator string
 after every  
n characters. | 
public String encode(byte[] bytes)
String.public final String encode(byte[] bytes, int off, int len)
String.@GwtIncompatible public abstract OutputStream encodingStream(Writer writer)
OutputStream that encodes bytes using this encoding into the specified
 Writer. When the returned OutputStream is closed, so is the backing Writer.@GwtIncompatible public final ByteSink encodingSink(CharSink encodedSink)
ByteSink that writes base-encoded bytes to the specified CharSink.public abstract boolean canDecode(CharSequence chars)
public final byte[] decode(CharSequence chars)
byte[]. This is the
 inverse operation to encode(byte[]).IllegalArgumentException - if the input is not a valid encoded string according to this
     encoding.@GwtIncompatible public abstract InputStream decodingStream(Reader reader)
InputStream that decodes base-encoded input from the specified Reader. The returned stream throws a BaseEncoding.DecodingException upon decoding-specific errors.@GwtIncompatible public final ByteSource decodingSource(CharSource encodedSource)
ByteSource that reads base-encoded bytes from the specified CharSource.public abstract BaseEncoding omitPadding()
public abstract BaseEncoding withPadChar(char padChar)
IllegalArgumentException - if this padding character is already used in the alphabet or a
     separatorpublic abstract BaseEncoding withSeparator(String separator, int n)
n characters. Any occurrences of any characters that occur in the separator
 are skipped over in decoding.IllegalArgumentException - if any alphabet or padding characters appear in the separator
     string, or if n <= 0UnsupportedOperationException - if this encoding already uses a separatorpublic abstract BaseEncoding upperCase()
IllegalStateException - if the alphabet used by this encoding contains mixed upper- and
     lower-case characterspublic abstract BaseEncoding lowerCase()
IllegalStateException - if the alphabet used by this encoding contains mixed upper- and
     lower-case characterspublic static BaseEncoding base64()
The character '=' is used for padding, but can be omitted or replaced.
 
No line feeds are added by default, as per RFC 4648 section 3.1, Line Feeds in
 Encoded Data. Line feeds may be added using withSeparator(String, int).
public static BaseEncoding base64Url()
The character '=' is used for padding, but can be omitted or replaced.
 
No line feeds are added by default, as per RFC 4648 section 3.1, Line Feeds in
 Encoded Data. Line feeds may be added using withSeparator(String, int).
public static BaseEncoding base32()
The character '=' is used for padding, but can be omitted or replaced.
 
No line feeds are added by default, as per RFC 4648 section 3.1, Line Feeds in
 Encoded Data. Line feeds may be added using withSeparator(String, int).
public static BaseEncoding base32Hex()
The character '=' is used for padding, but can be omitted or replaced.
 
No line feeds are added by default, as per RFC 4648 section 3.1, Line Feeds in
 Encoded Data. Line feeds may be added using withSeparator(String, int).
public static BaseEncoding base16()
No padding is necessary in base 16, so withPadChar(char) and omitPadding()
 have no effect.
 
No line feeds are added by default, as per RFC 4648 section 3.1, Line Feeds in
 Encoded Data. Line feeds may be added using withSeparator(String, int).
Copyright © 2010–2019. All rights reserved.