Java 8 Base64

返回上一级

Java 8 内置了 Base64 编码的编码器和解码器,位于包 java.util

java.util.Base64 类提供了一套静态方法获取下面三种 BASE64 编解码器

  1. 基本: 编码后只包含字符 A-Za-z0-9+/,且不添加任何行标

  2. URL: 编码后只包含字符 A-Za-z0-9+_ ,输出是 URL 和文件

  3. MIME: 输出映射到 MIME 友好格式。每行不超过 76 字符,使用 '\r\n' 作为行分隔符,编码输出最后没有行分割

内嵌类

内嵌类 描述
static class Base64.Decoder 一个解码器,使用 Base64 编码来解码字节数据
static class Base64.Encoder 一个编码器,使用 Base64 编码来编码字节数据

方法

方法描述
static Base64.Decoder getDecoder()
返回一个 Base64.Decoder ,解码使用基本型 base64 编码方案
static Base64.Encoder getEncoder()
返回一个 Base64.Encoder ,编码使用基本型 base64 编码方案
static Base64.Decoder getMimeDecoder()
返回一个 Base64.Decoder ,解码使用 MIME 型 base64 编码方案
static Base64.Encoder getMimeEncoder()
返回一个 Base64.Encoder ,编码使用 MIME 型 base64 编码方案
static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator)
返回一个 Base64.Encoder ,编码使用 MIME 型 base64 编码方案,可以通过参数指定每行的长度及行的分隔符
static Base64.Decoder getUrlDecoder()
返回一个 Base64.Decoder ,解码使用 URL 和文件名安全型 base64 编码方案
static Base64.Encoder getUrlEncoder()
返回一个 Base64.Encoder ,编码使用 URL 和文件名安全型 base64 编码方案

范例

下面的范例使用类 Base64 来编码和解码 Base64 数据

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("twle?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("TutorialsPoint?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());
      }
   }
}

运行以上 Java 代码,输出结果如下

$ javac Java8Tester.java 
$ java Java8Tester
Base64 比那么字符串 (基本) :dHdsZT9qYXZhOA==
原始字符串: twle?java8
Base64 编码字符串 (URL) :VHV0b3JpYWxzUG9pbnQ_amF2YTg=
Base64 编码字符串 (MIME) :NGMwZGYyYTAtNTA3YS00YjdhLWE3MzItM2I1MmE1ZDJjM2IyZmJiNzM0MDYtMjRhNC00NTY1LWIz
ZTEtNzcxN2MyMDllOWNhMmE1OGUzNTctMjA0NS00NmUzLWIyMmMtYzc5ZDY1NWY0M2EyYTYwZDEw
MmUtZTA4NS00NWQwLTliYTMtYmQyNzIzOWNjYTkxZTdkY2E2MDgtNzZmOS00YzViLWE2ZjctNGQx
ZDliMjQ2MjI0MTVlMTA0MTYtMGE5My00MmI0LTkyMzctYWUxMzQ5MTNkYzgxNTE4YmI0MzAtYzFk
NS00OTkxLTk3MjctNWQxZDUzYWY5NDExMDMxNGRiNDAtMWU3YS00MDRiLTljMjUtYjhkNjkwYjMw
NjNlYWNlZDczYjItNGMzMC00NWNhLTg0NWEtZmMzZGM3MTYyNTQ4ZTZlZGU2NzYtNWUwMC00YjY3
LTlhNWQtNTQ3MDgwYTA0NWFk

返回上一级

Java 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.