Java8新特性之Base64编码
在Java8中,提供了一种新特性,就是将Base64编码引入到Java类库中
Java8中内置了Base64编码和解码方法
三种Base64位内容编码方法,如下所示:
Base64编码解码方案
Base64涉及类
Base64所涉及的方法,如下表所示
例:
Base64编码及解码的示例分享
Java8中内置了Base64编码和解码方法
三种Base64位内容编码方法,如下所示:
Base64编码解码方案
- 基本:
输出被映射到一组字符A-Za-z0-9+/,编码不添加任何行标,输出的解码仅支持A-Za-z0-9+/ - URL:
输出映射到一组字符A-Za-z0-9+_,输出是URL和文件 - MIME:
输出隐射到MIME友好格式。输出每行不超过76字符,并且使用'\r'并跟随'\n'作为分割。编码输出最后没有行分割
Base64涉及类
编号 | 内嵌类 & 备注信息 |
---|---|
1 | static class Base64.Decoder
此类下面放入了一些Base64解码的方法 |
2 | static class Base64.Encoder
此类下面放入了一些Base64编码的方法 |
编号 | 方法名 &备注说明 |
---|---|
1 | static Base64.Decoder getDecoder()
返回一个 Base64.Decoder ,解码使用基本型 base64 编码方案 |
2 | static Base64.Encoder getEncoder()
返回一个 Base64.Encoder ,编码使用基本型 base64 编码方案 |
3 | static Base64.Decoder getMimeDecoder()
返回一个 Base64.Decoder ,解码使用 MIME 型 base64 编码方案 |
4 |
static Base64.Encoder getMimeEncoder() 返回一个 Base64.Encoder ,编码使用 MIME 型 base64 编码方案 |
5 | static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator)
返回一个 Base64.Encoder ,编码使用 MIME 型 base64 编码方案,可以通过参数指定每行的长度及行的分隔符 |
6 | static Base64.Decoder getUrlDecoder()
返回一个 Base64.Decoder ,解码使用 URL 和文件名安全型 base64 编码方案 |
7 | static Base64.Encoder getUrlEncoder()
返回一个 Base64.Encoder ,编码使用 URL 和文件名安全型 base64 编码方案 |
Base64编码及解码的示例分享
package com.java265; import java.io.UnsupportedEncodingException; import java.util.Base64; public class TestMain { /* * java265.com Java8 base64 */ public static void main(String[] args) throws UnsupportedEncodingException { String str = "Java265.com是世界上最优秀的Java教程站之一"; byte[] bytes = str.getBytes("utf-8");// 转换为字节数组 // 使用基本编码 String base64encodedString = Base64.getEncoder().encodeToString(bytes); System.out.println("Base64 编码字符串 (基本) :" + base64encodedString); // 解码 byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString); System.out.println("原始字符串: " + new String(base64decodedBytes, "utf-8")); base64encodedString = Base64.getUrlEncoder().encodeToString(bytes); System.out.println("Base64 编码字符串 (URL) :" + base64encodedString); // 字符串加长,展现换行效果 StringBuilder strlist = new StringBuilder(); for (int i = 0; i < 30; i++) { strList.append(str); } bytes = strList.toString().getBytes("utf-8"); String mimeEncodedString = Base64.getMimeEncoder().encodeToString(bytes); System.out.println("Base64 编码字符串 (MIME) :" + mimeEncodedString); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。