扫码一下
查看教程更方便
在 Java 8 中,Base64 终于如愿以偿。 Java 8 现在具有用于 Base64 编码的内置编码器和解码器。 在 Java 8 中,我们可以使用三种 Base64 编码。
A-Za-z0-9+/
中的一组字符。 编码器不会在输出中添加任何换行符,解码器会拒绝除 A-Za-z0-9+/
之外的任何字符。A-Za-z0-9+_
中的字符集。 输出是 URL 和文件名安全的。MIME
友好格式。 输出以每行不超过 76 个字符的行表示,并使用回车“\r”后跟换行“\n”作为行分隔符。 编码输出的末尾没有行分隔符。序号 | 嵌套类 | 描述 |
---|---|---|
1 | static class Base64.Decoder | 此类实现了一个解码器,用于使用 RFC 4648 和 RFC 2045 中指定的 Base64 编码方案来解码字节数据。 |
2 | static class Base64.Encoder | 此类实现了一个编码器,用于使用 RFC 4648 和 RFC 2045 中指定的 Base64 编码方案对字节数据进行编码。 |
序号 | 方法 | 描述 |
---|---|---|
1 | static Base64.Decoder getDecoder() | 返回使用基本类型 base64 编码方案解码的 Base64.Decoder。 |
2 | static Base64.Encoder getEncoder() | 返回使用基本类型 base64 编码方案进行编码的 Base64.Encoder。 |
3 | static Base64.Decoder getMimeDecoder() | 返回使用 MIME 类型 base64 解码方案解码的 Base64.Decoder。 |
4 | static Base64.Encoder getMimeEncoder() | 返回使用 MIME 类型 base64 编码方案进行编码的 Base64.Encoder。 |
5 | static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) | 返回使用具有指定行长和行分隔符的 MIME 类型 base64 编码方案进行编码的 Base64.Encoder。 |
6 | static Base64.Decoder getUrlDecoder() | 返回使用 URL 和文件名安全类型 base64 编码方案解码的 Base64.Decoder。 |
7 | static Base64.Encoder getUrlEncoder() | 返回使用 URL 和文件名安全类型 base64 编码方案进行编码的 Base64.Encoder。 |
此类从以下类继承方法
下面是Base64的一个简单的示例
import java.util.Base64; import java.util.UUID; import java.io.UnsupportedEncodingException; public class HelloWorld { public static void main(String args[]) { try { // 使用基本编码器编码 String base64encodedString = Base64.getEncoder().encodeToString( "TutorialsPoint?java8".getBytes("utf-8")); System.out.println("Base64 Encoded String (Basic) :" + base64encodedString); // 解码 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()); } } }
上述代码示例运行结果如下所示