类 Base64
This class implements section 6.8. Base64 Content-Transfer-Encoding from RFC 2045 Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies by Freed and Borenstein.
The class can be parameterized in the following manner with various constructors:
- URL-safe mode: Default off.
- Line length: Default 76. Line length that aren't multiples of 4 will still essentially end up being multiples of 4 in the encoded data.
- Line separator: Default is CRLF ("\r\n")
Since this class operates directly on byte streams, and not character streams, it is hard-coded to only encode/decode character encodings which are compatible with the lower 127 ASCII chart (ISO-8859-1, Windows-1252, UTF-8, etc).
This class is not thread-safe. Each thread should use its own instance.
- 从以下版本开始:
- 1.0
- 版本:
- $Revision: 1080712 $
- 作者:
- Apache Software Foundation
- 另请参阅:
- RFC 2045
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static byte[]decodeBase64(byte[] base64Data)Decodes Base64 data into octets.static byte[]encodeBase64(byte[] binaryData)Encodes binary data using the base64 algorithm but does not chunk the output.static byte[]encodeBase64(byte[] binaryData, boolean isChunked, boolean urlSafe, int maxResultSize)Encodes binary data using the base64 algorithm, optionally chunking the output into 76 character blocks.protected booleanisInAlphabet(byte octet)Returns whether or not theoctetis in the Base32 alphabet.
-
构造器详细资料
-
Base64
public Base64()Creates a Base64 codec used for decoding (all modes) and encoding in URL-unsafe mode.When encoding the line length is 0 (no chunking), and the encoding table is STANDARD_ENCODE_TABLE.
When decoding all variants are supported.
-
Base64
public Base64(int lineLength, byte[] lineSeparator, boolean urlSafe)Creates a Base64 codec used for decoding (all modes) and encoding in URL-unsafe mode.When encoding the line length and line separator are given in the constructor, and the encoding table is STANDARD_ENCODE_TABLE.
Line lengths that aren't multiples of 4 will still essentially end up being multiples of 4 in the encoded data.
When decoding all variants are supported.
- 参数:
lineLength- Each line of encoded data will be at most of the given length (rounded down to nearest multiple of 4). If lineLength <= 0, then the output will not be divided into lines (chunks). Ignored when decoding.lineSeparator- Each line of encoded data will end with this sequence of bytes.urlSafe- Instead of emitting '+' and '/' we emit '-' and '_' respectively. urlSafe is only applied to encode operations. Decoding seamlessly handles both modes.- 抛出:
IllegalArgumentException- The provided lineSeparator included some base64 characters. That's not going to work!- 从以下版本开始:
- 1.4
-
-
方法详细资料
-
encodeBase64
public static byte[] encodeBase64(byte[] binaryData)Encodes binary data using the base64 algorithm but does not chunk the output.- 参数:
binaryData- binary data to encode- 返回:
- byte[] containing Base64 characters in their UTF-8 representation.
-
encodeBase64
public static byte[] encodeBase64(byte[] binaryData, boolean isChunked, boolean urlSafe, int maxResultSize)Encodes binary data using the base64 algorithm, optionally chunking the output into 76 character blocks.- 参数:
binaryData- Array containing binary data to encode.isChunked- iftruethis encoder will chunk the base64 output into 76 character blocksurlSafe- iftruethis encoder will emit - and _ instead of the usual + and / characters.maxResultSize- The maximum result size to accept.- 返回:
- Base64-encoded data.
- 抛出:
IllegalArgumentException- Thrown when the input array needs an output array bigger than maxResultSize- 从以下版本开始:
- 1.4
-
decodeBase64
public static byte[] decodeBase64(byte[] base64Data)Decodes Base64 data into octets.- 参数:
base64Data- Byte array containing Base64 data- 返回:
- Array containing decoded data.
-
isInAlphabet
protected boolean isInAlphabet(byte octet)Returns whether or not theoctetis in the Base32 alphabet.- 参数:
octet- The value to test- 返回:
trueif the value is defined in the the Base32 alphabetfalseotherwise.
-