Java 教程
- Java - 首页
- Java - 概述
- Java - 历史
- Java - 特性
- Java 与 C++
- JVM - Java虚拟机
- Java - JDK 与 JRE 与 JVM
- Java - Hello World 程序
- Java - 环境搭建
- Java - 基本语法
- Java - 变量类型
- Java - 数据类型
- Java - 类型转换
- Java - Unicode系统
- Java - 基本运算符
- Java - 注释
- Java - 用户输入
- Java - 日期和时间
Java 控制语句
- Java - 循环控制
- Java - 决策制定
- Java - If-else
- Java - Switch
- Java - For循环
- Java - For-Each循环
- Java - While循环
- Java - do-while循环
- Java - Break
- Java - Continue
面向对象编程
- Java - OOPs概念
- Java - 对象和类
- Java - 类属性
- Java - 类方法
- Java - 方法
- Java - 变量作用域
- Java - 构造函数
- Java - 访问修饰符
- Java - 继承
- Java - 聚合
- Java - 多态性
- Java - 重写
- Java - 方法重载
- Java - 动态绑定
- Java - 静态绑定
- Java - 实例初始化块
- Java - 抽象
- Java - 封装
- Java - 接口
- Java - 包
- Java - 内部类
- Java - 静态类
- Java - 匿名类
- Java - 单例类
- Java - 包装类
- Java - 枚举
- Java - 枚举构造函数
- Java - 枚举字符串
Java 内置类
Java 文件处理
Java 错误和异常
- Java - 异常
- Java - try-catch 块
- Java - try-with-resources
- Java - 多重catch块
- Java - 嵌套try块
- Java - Finally块
- Java - throw 异常
- Java - 异常传播
- Java - 内置异常
- Java - 自定义异常
Java 多线程
- Java - 多线程
- Java - 线程生命周期
- Java - 创建线程
- Java - 启动线程
- Java - 加入线程
- Java - 线程命名
- Java - 线程调度器
- Java - 线程池
- Java - 主线程
- Java - 线程优先级
- Java - 守护线程
- Java - 线程组
- Java - 关闭钩子
Java 同步
Java 网络编程
- Java - 网络编程
- Java - Socket编程
- Java - URL处理
- Java - URL类
- Java - URLConnection类
- Java - HttpURLConnection类
- Java - Socket类
- Java -泛型
Java 集合
Java 接口
Java 数据结构
Java 集合算法
高级Java
- Java - 命令行参数
- Java - Lambda表达式
- Java - 发送邮件
- Java - Applet基础
- Java - Javadoc注释
- Java - 自动装箱和拆箱
- Java - 文件不匹配方法
- Java - REPL (JShell)
- Java - 多版本Jar文件
- Java - 私有接口方法
- Java - 内部类菱形运算符
- Java - 多分辨率图像API
- Java - 集合工厂方法
- Java - 模块系统
- Java - Nashorn JavaScript
- Java - Optional类
- Java - 方法引用
- Java - 函数式接口
- Java - 默认方法
- Java - Base64编码解码
- Java - Switch表达式
- Java - Teeing收集器
- Java - 微基准测试
- Java - 文本块
- Java - 动态CDS存档
- Java - Z垃圾收集器(ZGC)
- Java - 空指针异常
- Java - 打包工具
- Java - 密封类
- Java - 记录类
- Java - 隐藏类
- Java - 模式匹配
- Java - 简洁数字格式化
- Java - 垃圾回收
- Java - JIT编译器
Java 其他
- Java - 递归
- Java - 正则表达式
- Java - 序列化
- Java - 字符串
- Java - Process API改进
- Java - Stream API改进
- Java - 增强的@Deprecated注解
- Java - CompletableFuture API改进
- Java - 流
- Java - 日期时间API
- Java 8 - 新特性
- Java 9 - 新特性
- Java 10 - 新特性
- Java 11 - 新特性
- Java 12 - 新特性
- Java 13 - 新特性
- Java 14 - 新特性
- Java 15 - 新特性
- Java 16 - 新特性
Java APIs和框架
Java 类引用
- Java - Scanner
- Java - 数组
- Java - 字符串
- Java - Date
- Java - ArrayList
- Java - Vector
- Java - Stack
- Java - PriorityQueue
- Java - LinkedList
- Java - ArrayDeque
- Java - HashMap
- Java - LinkedHashMap
- Java - WeakHashMap
- Java - EnumMap
- Java - TreeMap
- Java - IdentityHashMap
- Java - HashSet
- Java - EnumSet
- Java - LinkedHashSet
- Java - TreeSet
- Java - BitSet
- Java - Dictionary
- Java - Hashtable
- Java - Properties
- Java - Collection
- Java - Array
Java 有用资源
Java - Base64编码和解码
Java 8中引入了Base64实用程序类,该类具有内置的Base64编码和解码编码器和解码器。我们有三种类型的Base64编码和解码可用。以下是这些新增类型的简要说明:
基本 - 输出映射到A-Za-z0-9+/字符集。编码器不会在输出中添加任何换行符,解码器会拒绝除A-Za-z0-9+/以外的任何字符。
URL - 输出映射到A-Za-z0-9+_字符集。输出对URL和文件名安全。
MIME - 输出映射到MIME友好格式。输出以每行不超过76个字符表示,并使用回车符'\r'后跟换行符'\n'作为行分隔符。编码输出的末尾没有行分隔符。
基本Base64编码和解码
基本Base64编码器对提供的字符串进行编码,不添加任何换行符。此编码器使用A-Za-z0-9+/字符集中的字符。以下是解释Base64编码器用法的代码片段。
String stringToEncode = "TutorialsPoint?java8"; // Encode using basic encoder String base64encodedString = Base64.getEncoder().encodeToString(stringToEncode.getBytes("utf-8"));
简单的Base64解码器通过拒绝除A-Za-z0-9+/以外的任何字符来解码Base64编码的字符串。以下是解释Base64解码器用法的代码片段。
// Decode the base64 encoded string using basic decoder byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString); // print the decoded string System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
示例:Java中的基本Base64编码和解码
以下示例展示了Base64基本编码器和解码器的用法。我们首先使用Base64.getEncoder()获取的编码器对简单的字符串进行编码,然后使用Base64.getDecoder()方法获取的解码器对返回的编码字符串进行解码。
package com.tutorialspoint; import java.io.UnsupportedEncodingException; import java.util.Base64; public class Base64Tester { public static void main(String[] args) throws UnsupportedEncodingException { String stringToEncode = "TutorialsPoint?java"; // Encode using basic encoder String base64encodedString = Base64.getEncoder().encodeToString(stringToEncode.getBytes("utf-8")); System.out.println("Encoded String: " + base64encodedString); // Decode the base64 encoded string using basic decoder byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString); // print the decoded string System.out.println("Decoded String: " + new String(base64decodedBytes, "utf-8")); } }
输出
让我们编译并运行上面的程序,这将产生以下结果:
Encoded String: VHV0b3JpYWxzUG9pbnQ/amF2YQ== Decoded String: TutorialsPoint?java
用于URL的Base64编码和解码
URL Base64编码器对提供的URL进行编码,使其对URL和文件名安全。此编码器使用A-Za-z0-9+/字符集中的字符。它使用URL和文件名安全类型的base64编码方案进行编码。以下是解释URL Base64编码器用法的代码片段。
String stringToEncode = "TutorialsPoint?java8"; // Encode using url encoder String base64encodedString = Base64.getUrlEncoder().encodeToString(stringToEncode.getBytes("utf-8"));
URL Base64解码器通过拒绝除A-Za-z0-9+/以外的任何字符来解码Base64编码的字符串。它使用URL和文件名安全类型的base64编码方案进行解码。以下是解释Base64解码器用法的代码片段。
// Decode the base64 encoded string using basic decoder byte[] base64decodedBytes = Base64.getUrlDecoder().decode(base64encodedString); // print the decoded string System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
示例:Java中用于URL的Base64编码和解码
以下示例展示了Base64 URL编码器和解码器的用法。我们首先使用Base64.getUrlEncoder()获取的编码器对简单的字符串进行编码,然后使用Base64.getUrlDecoder()方法获取的解码器对返回的编码字符串进行解码。
package com.tutorialspoint; import java.io.UnsupportedEncodingException; import java.util.Base64; public class Base64Tester { public static void main(String[] args) throws UnsupportedEncodingException { String stringToEncode = "TutorialsPoint?java"; // Encode using url encoder String base64encodedString = Base64.getUrlEncoder().encodeToString(stringToEncode.getBytes("utf-8")); System.out.println("Encoded String: " + base64encodedString); // Decode the base64 encoded string using url decoder byte[] base64decodedBytes = Base64.getUrlDecoder().decode(base64encodedString); // print the decoded string System.out.println("Decoded String: " + new String(base64decodedBytes, "utf-8")); } }
输出
让我们编译并运行上面的程序,这将产生以下结果:
Encoded String: VHV0b3JpYWxzUG9pbnQ_amF2YQ== Decoded String: TutorialsPoint?java
用于MIME类型内容的Base64编码和解码
MIME Base64编码器将提供的字符串内容编码为MIME友好格式。输出以每行不超过76个字符表示,并使用回车符'\r'后跟换行符'\n'作为行分隔符。编码输出的末尾没有行分隔符。以下是解释MIME Base64编码器用法的代码片段。
String stringToEncode = "TutorialsPoint?java8"; // Encode using mime encoder String base64encodedString = Base64.getMimeEncoder().encodeToString(stringToEncode.getBytes("utf-8"));
MIME Base64解码器通过拒绝除A-Za-z0-9+/以外的任何字符来解码Base64编码的字符串。它使用MIME类型的base64解码方案进行解码。以下是解释Base64解码器用法的代码片段。
// Decode the base64 encoded string using basic decoder byte[] base64decodedBytes = Base64.getMIMEDecoder().decode(base64encodedString); // print the decoded string System.out.println("Original String: " + new String(base64decodedBytes, "utf-8"));
示例:Java中的MIME Base64编码和解码
以下示例展示了Base64 MIME编码器和解码器的用法。我们首先使用Base64.getMIMEEncoder()获取的编码器对简单的字符串进行编码,然后使用Base64.getMIMEDecoder()方法获取的解码器对返回的编码字符串进行解码。
package com.tutorialspoint; import java.io.UnsupportedEncodingException; import java.util.Base64; import java.util.UUID; public class Base64Tester { public static void main(String[] args) throws UnsupportedEncodingException { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < 10; ++i) { stringBuilder.append(UUID.randomUUID().toString()); stringBuilder.append(","); } byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8"); String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes); System.out.println("Base64 Encoded String (MIME) : " + mimeEncodedString); // Decode the base64 encoded string using url decoder byte[] base64decodedBytes = Base64.getMimeDecoder().decode(mimeEncodedString); // print the decoded string System.out.println("Decoded String: " + new String(base64decodedBytes, "utf-8")); } }
输出
让我们编译并运行上面的程序,这将产生以下结果:
Base64 Encoded String (MIME) : NzRmNjkyODktYzJjZS00ZmU2LWEzYTUtMmFlMWRlMDQ1ZjU4LGQyNGQzMTU5LTVmOGUtNDZhMS04 NGRkLTBiMzNlNzc4ZjNiOCw2MmM1OTEzOS1kNmQwLTQ5MmQtYmUyMi01NmEzMTk5NmRkMTAsZDZh NjBlNzctZjRjZi00Y2Q4LTk5MWEtYTY2ZDEzMzU4YjFjLGFlNDhkZmZjLTEwZjctNDk5OS05NTFj LTU5ZGY1MjcyYjczNywxY2JiZjU0Ni0zNjc1LTQ4NzAtYTYxNC01MzkyODFkNjRjYmMsMTlhNTNi ODEtODQ0OS00M2MyLTg4NmMtNDhmZThmZDZmN2E1LDQyNmRhZDE0LTEyNjItNGJhZC1hMWJlLTNm ODc4MWE1YzhiMiw2NjEwMTgzZS03MGNkLTQzZTctOTRkNC0wZDgzZmY1MzhkNWYsOWMxNmMwM2Ut ZWZmZS00Zjg2LWFkYzgtNjc3MThjYTVlYjI2LA== Decoded String: 74f69289-c2ce-4fe6-a3a5-2ae1de045f58,d24d3159-5f8e-46a1-84dd-0b33e778f3b8,62c59139-d6d0-492d-be22-56a31996dd10,d6a60e77-f4cf-4cd8-991a-a66d13358b1c,ae48dffc-10f7-4999-951c-59df5272b737,1cbbf546-3675-4870-a614-539281d64cbc,19a53b81-8449-43c2-886c-48fe8fd6f7a5,426dad14-1262-4bad-a1be-3f8781a5c8b2,6610183e-70cd-43e7-94d4-0d83ff538d5f,9c16c03e-effe-4f86-adc8-67718ca5eb26,
Base64类的嵌套类
Base64类提供以下类。
序号 | 嵌套类和描述 |
---|---|
1 | static class Base64.Decoder 此类实现一个解码器,用于根据RFC 4648和RFC 2045中指定的Base64编码方案解码字节数据。 |
2 | static class Base64.Encoder 此类实现一个编码器,用于根据RFC 4648和RFC 2045中指定的Base64编码方案编码字节数据。 |
Base64类方法
以下是Base64类提供的用于辅助Base64编码/解码的方法。
序号 | 方法名称和描述 |
---|---|
1 | static Base64.Decoder getDecoder() 返回一个使用基本类型base64编码方案解码的Base64.Decoder。 |
2 | static Base64.Encoder getEncoder() 返回一个使用基本类型base64编码方案编码的Base64.Encoder。 |
3 | static Base64.Decoder getMimeDecoder() 返回一个使用MIME类型base64解码方案解码的Base64.Decoder。 |
4 | static Base64.Encoder getMimeEncoder() 返回一个使用MIME类型base64编码方案编码的Base64.Encoder。 |
5 | static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) 返回一个使用指定行长和行分隔符的MIME类型base64编码方案编码的Base64.Encoder。 |
6 | static Base64.Decoder getUrlDecoder() 返回一个使用URL和文件名安全类型base64编码方案解码的Base64.Decoder。 |
7 | static Base64.Encoder getUrlEncoder() 返回一个使用URL和文件名安全类型base64编码方案编码的Base64.Encoder。 |
继承的方法
此类继承自以下类的方法:
- java.lang.Object