专业的JAVA编程教程与资源

网站首页 > java教程 正文

java8新特性Base64(java8新特性Base64位)

temp10 2024-10-05 01:09:58 java教程 21 ℃ 0 评论

为什么有时候用记事本打开exe,jpg,pdf这些文件会看到一堆乱码? 如何要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法,Base64是一种最常见的二进制编码方法。

Base64

java8新特性Base64(java8新特性Base64位)

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2^6=64,所以每6个比特为一个单元,对应某个可打印字符。3个字节有24个比特,对应于4个Base64单元,即3个字节可由4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z,a-z,数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。

Base64常用于在通常处理文本数据的场合,表示,传输,存储一些二进制数据,包括MIME的电子邮件XML的一些复杂数据

Java 8包在java.util下面实现了Base64编解码,而且性能不俗,API也简单易懂,下面展示一下这个类的使用例子。

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

1.Basic编码:是标准的Base64编码,用于处理常规的需求

//编码

String asB64 = Base64.getEncoder().encodeToString("huajiexuebiancheng".getBytes());

System.out.println(asB64);//输出结果:aHVhamlleHVlYmlhbmNoZW5n

//解码

byte[] asBytes = Base64.getDecoder().decode("aHVhamlleHVlYmlhbmNoZW5n");

System.out.println(new String(asBytes));//输出结果:huajiexuebiancheng

2.URL编码:使用下划线替换URL里面的反斜线“/”

String urlEncoded = Base64.getUrlEncoder().encodeToString("subjects?abcd".getBytes());

System.out.println(urlEncoded);//输出结果:c3ViamVjdHM_YWJjZA==

3.MIME编码:使用基本的字母数字产生Base64输出,而且对MIME格式友好,每一行输出不超过76个字符,而且每行以“\r\n”符结束。

StringBuilder sb = new StringBuilder();

for(int i = 0;i<10;i++){

sb.append(UUID.randomUUID().toString());

}

byte[] toEncode = sb.toString().getBytes();

String mimeEncoded = Base64.getMimeEncoder().encodeToString(toEncode);

System.out.println(mimeEncoded);

Base64的编码解码工具

https://www.base64encode.org/

http://tool.oschina.net/encrypt?type=3

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表