非常教程

JAVA参考手册

Java8 Base64

Java8 Base64

Java8 Base64

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("verydoc?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("verydoc?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
原始字符串: verydoc?java8
Base64 编码字符串 (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 编码字符串 (MIME) :M2Q4YmUxMTEtYWRkZi00NzBlLTgyZDgtN2MwNjgzOGY2NGFlOTQ3NDYyMWEtZDM4ZS00YWVhLTkz
OTYtY2ZjMzZiMzFhNmZmOGJmOGI2OTYtMzkxZi00OTJiLWEyMTQtMjgwN2RjOGI0MTBmZWUwMGNk
NTktY2ZiZS00MTMxLTgzODctNDRjMjFkYmZmNGM4Njg1NDc3OGItNzNlMC00ZWM4LTgxNzAtNjY3
NTgyMGY3YzVhZWQyMmNiZGItOTIwZi00NGUzLTlkMjAtOTkzZTI1MjUwMDU5ZjdkYjg2M2UtZTJm
YS00Y2Y2LWIwNDYtNWQ2MGRiOWQyZjFiMzJhMzYxOWQtNDE0ZS00MmRiLTk3NDgtNmM4NTczYjMx
ZDIzNGRhOWU4NDAtNTBiMi00ZmE2LWE0M2ItZjU3MWFiNTI2NmQ2NTlmMTFmZjctYjg1NC00NmE1
LWEzMWItYjk3MmEwZTYyNTdk

Java8 Base64

Java 8 新特性

Java8 Base64

JAVA目录

1.Java 简介
2.Java 变量类型
3.Java StringBuffer 和 StringBuilder 类
4.Java String 类
5.Java Character 类
6.Java 条件语句 – if…else
7.Java 循环结构 – for, while 及 do…while
8.Java 运算符
9.Java File类
10.Java DataOutputStream类
11.Java ByteArrayOutputStream类
12.Java DataInputStream类
13.Java ByteArrayInputStream类
14.Java 正则表达式
15.Java 日期时间
16.Java Enumeration接口
17.Java 包(package)
18.Java 接口
19.Java 封装
20.Java 抽象类
21.Java FileWriter类
22.Java FileReader类
23.Java 数据结构
24.Java Properties 类
25.Java Hashtable 类
26.Java Map 接口
27.Java Dictionary 类
28.Java Stack 类
29.Java Vector 类
30.Java Bitset类
31.Java Applet 基础
32.Java 网络编程
33.Java URL处理
34.Java 序列化
35.Java 泛型
36.Java 文档注释
37.Java 实例 – 删除字符串中的一个字符
38.Java 实例 – 查找字符串最后一次出现的位置
39.Java 实例
40.Java 实例 – 字符串比较
41.Java 实例 – 如何查看当前 Java 运行的版本?
42.Java 实例 – 如何执行指定class文件目录(classpath)
43.Java 实例 – 如何执行编译过 Java 文件
44.Java 实例 – 如何编译 Java 文件
45.Java 实例 – 连接字符串
46.Java 实例 – 字符串格式化
47.Java 实例 – 字符串优化
48.Java 实例 – 字符串性能比较测试
49.Java 实例 – 测试两个字符串区域是否相等
50.Java 实例 – 字符串小写转大写
51.Java 实例 – 字符串分割
52.Java 实例 – 字符串查找
53.Java 实例 – 字符串反转
54.Java 实例 – 字符串替换
55.Java 实例 – 查找数组中的重复元素
56.Java 实例 – 数组扩容
57.Java 实例 – 数组填充
58.Java 实例 – 数组合并
59.Java 实例 – 数组获取最大和最小值
60.Java 实例 – 数组输出
61.Java 实例 – 数组反转
62.Java 实例 – 获取数组长度
63.Java 实例 – 数组添加元素
64.Java 实例 – 数组排序及元素查找
65.Java 实例 – 时间戳转换成时间
66.Java 实例 – 获取年份、月份等
67.Java 实例 – 获取当前时间
68.Java 实例 – 格式化时间(SimpleDateFormat)
69.Java 实例 – 数组并集
70.Java 实例 – 判断数组是否相等
71.Java 实例 – 在数组中查找指定元素
72.Java 实例 – 数组交集
73.Java 实例 – 数组差集
74.Java 实例 – 删除数组元素
75.Java 实例 – 标签(Label)
76.Java 实例 – continue 关键字用法
77.Java 实例 – break 关键字用法
78.Java 实例 – instanceof 关键字用法
79.Java 实例 – 方法覆盖
80.Java 实例 – 阶乘
81.Java 实例 – 斐波那契数列
82.Java 实例 – 汉诺塔算法
83.Java 实例 – 输出数组元素
84.Java 实例 – 方法重载
85.Java 实例 – 检测文件是否存在
86.Java 实例 – 在指定目录中创建文件
87.Java 实例 – 获取文件修改时间
88.Java 实例 – 创建文件
89.Java 实例 – 文件路径比较
90.Java 实例 – 重载(overloading)方法中使用 Varargs
91.Java 实例 – Varargs 可变参数使用
92.Java 实例 – for 和 foreach循环使用
93.Java 实例 – Enum(枚举)构造函数及方法的使用
94.Java 实例 – enum 和 switch 语句使用
95.Java 实例 – 文件写入
96.Java 实例 – 读取文件内容
97.Java 实例 – 删除文件
98.Java 实例 – 将文件内容复制到另一个文件
99.Java 实例 – 向文件中追加数据
100.Java 实例 – 创建临时文件