Java8 Base64
Java 8 新特性
在Java 8中,Base64编码已经成为Java类库的标准。
Java 8 内置了 Base64 编码的编码器和解码器。
Base64工具类提供了一套静态方法获取下面三种BASE64编解码器:
基本:输出被映射到一组字符A-Za-z0-9+/,编码不添加任何行标,输出的解码仅支持A-Za-z0-9+/。URL:输出映射到一组字符A-Za-z0-9+_,输出是URL和文件。MIME:输出隐射到MIME友好格式。输出每行不超过76字符,并且使用'\r'并跟随'\n'作为分割。编码输出最后没有行分割。
内嵌类
序号
内嵌类 & 描述
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 类的很多方法从 java.lang.Object 类继承。
Base64 实例
以下实例演示了 Base64 的使用:
Java8Tester.java 文件
import java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;
public class Java8Tester {
public static void main(String args[]){
try {
// 使用基本编码
String base64encodedString = Base64.getEncoder().encodeToString("runoob?java8".getBytes("utf-8"));
System.out.println("Base64 编码字符串 (基本) :" + base64encodedString);
// 解码
byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
System.out.println("原始字符串: " + new String(base64decodedBytes, "utf-8"));
base64encodedString = Base64.getUrlEncoder().encodeToString("runoob?java8".getBytes("utf-8"));
System.out.println("Base64 编码字符串 (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 编码字符串 (MIME) :" + mimeEncodedString);
}catch(UnsupportedEncodingException e){
System.out.println("Error :" + e.getMessage());
}
}
}
执行以上脚本,输出结果为:
$ javac Java8Tester.java
$ java Java8Tester
原始字符串: runoob?java8
Base64 编码字符串 (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 编码字符串 (MIME) :M2Q4YmUxMTEtYWRkZi00NzBlLTgyZDgtN2MwNjgzOGY2NGFlOTQ3NDYyMWEtZDM4ZS00YWVhLTkz
OTYtY2ZjMzZiMzFhNmZmOGJmOGI2OTYtMzkxZi00OTJiLWEyMTQtMjgwN2RjOGI0MTBmZWUwMGNk
NTktY2ZiZS00MTMxLTgzODctNDRjMjFkYmZmNGM4Njg1NDc3OGItNzNlMC00ZWM4LTgxNzAtNjY3
NTgyMGY3YzVhZWQyMmNiZGItOTIwZi00NGUzLTlkMjAtOTkzZTI1MjUwMDU5ZjdkYjg2M2UtZTJm
YS00Y2Y2LWIwNDYtNWQ2MGRiOWQyZjFiMzJhMzYxOWQtNDE0ZS00MmRiLTk3NDgtNmM4NTczYjMx
ZDIzNGRhOWU4NDAtNTBiMi00ZmE2LWE0M2ItZjU3MWFiNTI2NmQ2NTlmMTFmZjctYjg1NC00NmE1
LWEzMWItYjk3MmEwZTYyNTdk
Java 8 新特性
- 饥荒皇家地毯需要的材料在哪获取《饥荒》发布到现在,热度一直不减,下面小编要为大家带来的是玩家分享的《饥荒》老麦生存全流程实况图文赏析,赶紧一起来看看吧! 老麦...
- KMPlayer媒体播放器完全指南本文还有配套的精品资源,点击获取 简介:KMPlayer是一款拥有强大自定义功能和广泛格式支持的多功能媒体播放器。本文详细指导用户如何安装...
- 上海招聘网站哪个企业多:权威企业数量排名品牌介绍:定位聚焦基层奋斗者的务实求职平台,名称以幽默梗传递“踏实打工也能被看见”的价值观。核心特色为主打蓝领、基层岗位(物流...
- 稊的解释【午集下】【禾】 稊·康熙筆画:12 ·部外筆画:7 【廣韻】杜奚切【集韻】【韻會】田黎切【正韻】杜兮切,𠀤音題。【說文】本作蕛。蕛苵...
- 《心跳日记》2025夏日心动庆典:与你的虚拟恋人共度30天甜蜜挑战 活动说明 亲爱的《心跳日记》玩家们: 在这个充满爱意的夏天,我们特别策划了为期30天的「夏日心动庆典」活动!从2025年6月8日00:00开始...
- 王者荣耀新赛季段位继承全解析:从青铜到百星王者的掉段逻辑新赛季为何要掉段?游戏生态的平衡之道 开篇点明段位继承机制的核心目的:通过赛季重置避免高段位玩家扎堆,保持匹配公平性。结合官方设...
- 《贪婪洞窟》2025年5月8日开启的“深渊宝藏大冒险”限时活动 亲爱的冒险者们,准备好迎接一场前所未有的挑战了吗?2025年5月8日,《贪婪洞窟》将开启全新限时活动——“深渊宝藏大冒险”!本次活动...
- 2025年大枭雄游戏巅峰对决——大枭雄之英雄集结挑战赛 为庆祝《大枭雄》游戏全新版本上线,大枭雄之英雄集结挑战赛将于2025年7月20日正式开启!本次活动将持续一个月,旨在为玩家提供一个展示...
- 怎么查手机是不是全网通呢随着移动通信技术的不断发展,手机的功能越来越强大,全网通手机也越来越受欢迎。全网通手机可以支持多种网络制式,方便用户在不同地区...
- [资料]精炼成功率汇总表看客 发短消息 加为好友 看客 yaloo 论坛元老 UID298261 帖子9525 精华12 威望247 阅读权限101 性别男 来自The Lost Holy Elf 注册时间2005-7-8 1# 跳转到 » 倒...