亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 8 Base64 编解码:标准、URL 安全、MIME 三种模式一网打尽

Java 8 终于在标准库中内置了 Base64 编解码支持(java.util.Base64),提供三种编码模式:

嵌套类

序号嵌套类与说明
1static class Base64.Decoder — 实现 RFC 4648 和 RFC 2045 定义的解码器。
2static class Base64.Encoder — 实现 RFC 4648 和 RFC 2045 定义的编码器。

常用静态工厂方法

序号方法与说明
1static Base64.Decoder getDecoder() — 返回标准解码器。
2static Base64.Encoder getEncoder() — 返回标准编码器。
3static Base64.Decoder getMimeDecoder() — 返回 MIME 解码器。
4static Base64.Encoder getMimeEncoder() — 返回 MIME 编码器(默认 76 字符/行)。
5static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) — 自定义行长与分隔符的 MIME 编码器。
6static Base64.Decoder getUrlDecoder() — 返回 URL 安全解码器。
7static Base64.Encoder getUrlEncoder() — 返回 URL 安全编码器。

类继承自 java.lang.Object。

完整示例

import java.util.Base64;
import java.util.UUID;
import java.io.UnsupportedEncodingException;

public class HelloWorld {
    public static void main(String[] args) {
        try {
            String input = "TutorialsPoint?java8";
            byte[] bytes = input.getBytes("utf-8");

            // 标准编解码
            String basicEncoded = Base64.getEncoder().encodeToString(bytes);
            System.out.println("Basic 编码: " + basicEncoded);
            byte[] basicDecoded = Base64.getDecoder().decode(basicEncoded);
            System.out.println("原文: " + new String(basicDecoded, "utf-8"));

            // URL 安全编码
            String urlEncoded = Base64.getUrlEncoder().encodeToString(bytes);
            System.out.println("URL 编码: " + urlEncoded);

            // MIME 编码(长字符串演示分行)
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < 10; i++) {
                sb.append(UUID.randomUUID().toString());
            }
            byte[] mimeBytes = sb.toString().getBytes("utf-8");
            String mimeEncoded = Base64.getMimeEncoder().encodeToString(mimeBytes);
            System.out.println("MIME 编码:\n" + mimeEncoded);

        } catch (UnsupportedEncodingException e) {
            System.err.println("编码错误: " + e.getMessage());
        }
    }
}

运行结果片段

Basic 编码: VHV0b3JpYWxzUG9pbnQ/amF2YTg=
原文: TutorialsPoint?java8
URL 编码: VHV0b3JpYWxzUG9pbnQ_amF2YTg=
MIME 编码:
YmU3NWY2ODktNGM5YS00ODlmLWI2MTUtZTVkOTk2YzQ1Njk1Y2EwZTg2OTEtMmRiZC00YTQ1LWJl
NTctMTI1MWUwMTk0ZWQyNDE0NDAwYjgtYTYxOS00NDY5LTllYTctNjc1YzE3YWJhZTk1MTQ2MDQz
NDItOTAyOC00ZWI0LThlOTYtZWU5YzcwNWQyYzVhMTQxMWRjYTMtY2MwNi00MzU0LTg0MTgtNGQ1
MDkwYjdiMzg2ZTY0OWU5MmUtZmNkYS00YWEwLTg0MjQtYThiOTQxNDQ2YzhhNTVhYWExZjItNjU2
Mi00YmM4LTk2ZGYtMDE4YmY5ZDZhMjkwMzM3MWUzNDMtMmQ3MS00MDczLWI0Y2UtMTQxODE0MGU5
YjdmYTVlODUxYzItN2NmOS00N2UyLWIyODQtMThlMWVkYTY4M2Q1YjE3YTMyYmItZjllMS00MTFk
LWJiM2UtM2JhYzUxYzI5OWI4

java

  1. 编码器基础:设计 2-1 与 7 段二进制编码器
  2. 精通 Java 运算符:类型、语法与实战示例
  3. Java 注释:类型、用法与最佳实践
  4. 精通 Java if…else:控制流全解析
  5. 精通 Java 增强 for 循环:语法、示例与最佳实践
  6. 精通 Java 字符串:创建、方法与最佳实践
  7. 精通 Java 接口:概念、实现与最佳实践
  8. 精通 Java 匿名内部类:定义、语法与实战示例
  9. 精通 Java Try-With-Resources:自动资源管理详解
  10. Java 注解详解:类型、放置位置与实战示例
  11. Java 断言实战指南:尽早发现 Bug 与保障代码可靠性
  12. 深入理解 Java Vector:用法、特性及与 ArrayList 的对比