Java 8中终于加入了最Base64
的支持,有三种使用方式:
- Simple - 限定字符集
A-Za-z0-9+/
,否则decoder
会报错。 - URL - 限定字符集
A-Za-z0-9+_
。 - MIME - 输出
MIME
类型(Multipurpose Internet Mail Extensions),每行不超过76个字符,使用换行符\r
,行分隔符\n
,结尾没有行分隔符。
类
static class Base64.Decoder
- 用于decode,遵循RFC 4648 和 RFC 2045。static class Base64.Encoder
- 用于encode,遵循RFC 4648 和 RFC 2045。
方法
-
static Base64.Decoder getDecoder()
返回一个Base64.Decoder,使用Simple方式decode。 -
static Base64.Encoder getEncoder()
返回一个Base64.Encoder,使用Simple方式encode。 -
static Base64.Decoder getMimeDecoder()
返回一个Base64.Decoder,使用MIME方式decode。 -
static Base64.Encoder getMimeEncoder()
返回一个Base64.Encoder,使用MIME方式encode。 -
static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator)
返回一个Base64.Encoder,使用MIME方式encode,可以指定line length和line separator。 -
static Base64.Decoder getUrlDecoder()
返回一个Base64.Decoder,使用URL方式decode。 -
static Base64.Encoder getUrlEncoder()
返回一个Base64.Encoder,使用URL方式encode。
示例:
mport java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;
public class HelloWorld {
public static void main(String args[]) {
try {
// Encode using basic encoder
String base64encodedString = Base64.getEncoder().encodeToString(
"TutorialsPoint?java8".getBytes("utf-8"));
System.out.println("Base64 Encoded String (Basic) :" + base64encodedString);
// Decode
byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
base64encodedString = Base64.getUrlEncoder().encodeToString(
"TutorialsPoint?java8".getBytes("utf-8"));
System.out.println("Base64 Encoded String (URL) :" + base64encodedString);
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 10; ++i) {
stringBuilder.append(UUID.randomUUID().toString());
}
byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8");
String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes);
System.out.println("Base64 Encoded String (MIME) :" + mimeEncodedString);
} catch(UnsupportedEncodingException e) {
System.out.println("Error :" + e.getMessage());
}
}
}
执行结果:
Base64 Encoded String (Basic) :VHV0b3JpYWxzUG9pbnQ/amF2YTg=
Original String: TutorialsPoint?java8
Base64 Encoded String (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 Encoded String (MIME) :YmU3NWY2ODktNGM5YS00ODlmLWI2MTUtZTVkOTk2YzQ1Njk1Y2EwZTg2OTEtMmRiZC00YTQ1LWJl
NTctMTI1MWUwMTk0ZWQyNDE0NDAwYjgtYTYxOS00NDY5LTllYTctNjc1YzE3YWJhZTk1MTQ2MDQz
NDItOTAyOC00ZWI0LThlOTYtZWU5YzcwNWQyYzVhMTQxMWRjYTMtY2MwNi00MzU0LTg0MTgtNGQ1
MDkwYjdiMzg2ZTY0OWU5MmUtZmNkYS00YWEwLTg0MjQtYThiOTQxNDQ2YzhhNTVhYWExZjItNjU2
Mi00YmM4LTk2ZGYtMDE4YmY5ZDZhMjkwMzM3MWUzNDMtMmQ3MS00MDczLWI0Y2UtMTQxODE0MGU5
YjdmYTVlODUxYzItN2NmOS00N2UyLWIyODQtMThlMWVkYTY4M2Q1YjE3YTMyYmItZjllMS00MTFk
LWJiM2UtM2JhYzUxYzI5OWI4