在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("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());}}
}

http://www.runoob.com/java/java8-base64.html

转载于:https://www.cnblogs.com/chenglc/p/9516530.html

Java8 Base64相关推荐

  1. Java8————Base64

    Base64? Base64是一种用64个字符来表示任意二进制数据的方式. 对于二进制文件如图片.exe.音频.视频等,包含很多无法显示和打印的字符,如果希望能够通过记事本这样的文本处理软件处理二进制 ...

  2. Java8 Base64加密和解密

    在 Java8中 Base64编码已经成为Java类库的标准,且内置了Base64编码的编码器和解码器. 一.什么是Base64?  -- 来自百度百科 Base64是网络上最常见的用于传输 8Bit ...

  3. java8 base64_Java 8中的Base64 –加入乐趣为时不晚

    java8 base64 最后,Java 8发布了. 最后,有一种执行Base64编码的标准方法. 长期以来,我们一直依赖于Apache Commons Codec(无论如何还是很棒的). 内存敏感的 ...

  4. java8新特性(7)— Base64

    java8新特性(7)- Base64 新增Base64工具类 package com.common.jdk8;import java.io.UnsupportedEncodingException; ...

  5. java 和 Android Base64加密

    Java8 Base64 Java 8 新特性 在Java 8中,Base64编码已经成为Java类库的标准. Java 8 内置了 Base64 编码的编码器和解码器. Base64工具类提供了一套 ...

  6. Java8新特性学习记录

    前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级.在Java Code Geeks上已经有很多介绍Java 8新特性的文章, 例如Playing with Java ...

  7. 一文看透java8新特性

    1.介绍 毫无疑问,Java 8发行版是自Java 5(发行于2004,已经过了相当一段时间了)以来最具革命性的版本.Java 8 为Java语言.编译器.类库.开发工具与JVM(Java虚拟机)带来 ...

  8. 【Java学习笔记之二十八】深入了解Java8新特性

    前言: Java 8 已经发布很久了,很多报道表明java 8 是一次重大的版本升级.在Java Code Geeks上已经有很多介绍Java 8新特性的文章,例如Playing with Java ...

  9. 【转载保存】java8新特性学习

    编者注:Java 8已经公布有一段时间了,种种迹象表明Java 8是一个有重大改变的发行版. 在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8--lambd ...

  10. Java8新特性教程 - 终极指南

    转载来源:https://www.javacodegeeks.com/2014/05/java-8-features-tutorial.html Java 8 新特性教程 - 终极指南 编者按:在这篇 ...

最新文章

  1. Linux VI编辑器
  2. 数据库优化之统计分析实战篇
  3. 科大星云诗社动态20210514
  4. tfrecord数据报错 InvalidArgumentError: Feature: feature (data type: string) is required but could not
  5. Oracle 最后通牒:要 Java 8 更新先交钱!
  6. SSAS中出现“对象引用未被设置到对象实例”的解决记录
  7. 中国上市公司2001-2020年历史股票数据下载(获得方式见网页 http://yanzw.cn )
  8. SI 9000 及阻抗匹配学习笔记(二)
  9. 短信链接复制搜索公众号,短信如何推广公众号?
  10. 如何用excel筛选相似内容_excel怎么筛选出相同内容
  11. KB、kb和MB、Mb的区别
  12. Dbeaver连接Clickhouse无法下载/更新驱动
  13. 2023最新广西大学计算机电子信息考研复试之计算机网络和软件工程 828数据结构与程序设计上岸冲刺复试宝典(复试版/复试资料)
  14. MFC加载PNG图片
  15. 环信即时通讯云iOS版V2.0.9.1服务评测
  16. 微信视频(图片)打赏源码视频教程,图片打赏观看制作付费观看程序,微信打赏
  17. 微信小程序后台接口调试及发布
  18. 事件驱动库 libev 使用详解
  19. Twitter Typeahead plugin Example
  20. 日记侠:成为软文高手有秘诀吗?

热门文章

  1. 2018大盘点 | R语言中文社区十大火爆文章
  2. Spring的ioc操作 与 IOC底层原理
  3. ArrayList源码解析(JDK1.8)
  4. capjoint一些生成文件的解释
  5. react-native环境配置——Android工程搭建
  6. PHP底层的运行机制与原理
  7. java学习路径1--转自byr
  8. ZOJ 3229 有上下界最大流
  9. 美图拟收购乐游科技附属公司约30%股份 后者为Warframe开发商
  10. sql中的一些通用函数