Java学习笔记-封装Java Util包Base64方法
懒人菜鸟入门Java系列-习惯性封装常用方法,方便开发过程中调用
注释: Java版本-1.8
1 * @Author wuwenchao
2 * @Version 1.0.0
3 * @Date 2022/4/29 10:07
4 */
5
6 import java.io.UnsupportedEncodingException;
7 import java.util.Base64;
8
9 /**
10 * 封装Java Util包Base64方法
11 *
12 * @author wuwenchao
13 * @Date 2022-04-29 10:07
14 **/
15 public class JavaBase64Utils {
16
17 public static final String encodingUTF_8 = "UTF-8";
18 public static Base64.Encoder encoder;
19 public static Base64.Decoder decoder;
20
21 static {
22 decoder = Base64.getDecoder();
23 encoder = Base64.getEncoder();
24 }
25
26 /**
27 * byte[] Base64编码
28 *
29 * @Author wuwenchao
30 * @Date 2022/4/29 10:11
31 */
32 public static byte[] encodeBase64(byte[] bytes) {
33 return encoder.encode(bytes);
34 }
35 /**
36 * 字符串 Base64编码
37 *
38 * @Author wuwenchao
39 * @Date 2022/4/29 10:11
40 */
41 public static String encodeBase64(String source) {
42 byte[] bytes = encodeBase64(source.getBytes());
43 try {
44 return new String(bytes, encodingUTF_8);
45 } catch (UnsupportedEncodingException ex) {
46 ex.printStackTrace();
47 }
48 return null;
49 }
50 /**
51 * byte[] Base64编码为 字符串
52 *
53 * @Author wuwenchao
54 * @Date 2022/4/29 10:11
55 */
56 public static String encodeBase64String(byte[] bytes) {
57 return encoder.encodeToString(bytes);
58 }
59 /**
60 * 字符串 Base64编码为 byte[]
61 *
62 * @Author wuwenchao
63 * @Date 2022/4/29 10:11
64 */
65 public static byte[] encodeBase64Byte(String source) {
66 byte[] bytes = encodeBase64(source.getBytes());
67 return bytes;
68 }
69 /**
70 * Base64Byte 解码
71 *
72 * @Author wuwenchao
73 * @Date 2022/4/29 10:11
74 */
75 public static byte[] decodeBase64(byte[] bytes) {
76 return decoder.decode(bytes);
77 }
78 /**
79 * Base64字符串 解码为 byte[]
80 *
81 * @Author wuwenchao
82 * @Date 2022/4/29 10:11
83 */
84 public static byte[] decodeBase64Byte(String string) {
85 return decoder.decode(string.getBytes());
86 }
87 /**
88 * Base64Byte 解码为字符串
89 *
90 * @Author wuwenchao
91 * @Date 2022/4/29 10:11
92 */
93 public static String decodeBase64String(byte[] bytes) {
94 try {
95 return new String(decoder.decode(bytes),encodingUTF_8);
96 } catch (UnsupportedEncodingException e) {
97 e.printStackTrace();
98 }
99 return null;
100 }
101 /**
102 * Base64字符串 解码
103 *
104 * @Author wuwenchao
105 * @Date 2022/4/29 10:11
106 */
107 public static String decodeBase64(String string) {
108 byte[] decode = decodeBase64(string.getBytes());
109 try {
110 return new String(decode, encodingUTF_8);
111 } catch (UnsupportedEncodingException e) {
112 e.printStackTrace();
113 }
114 return null;
115 }
116 }
Java学习笔记-封装Java Util包Base64方法的更多相关文章
- java学习笔记—第三方操作数据库包专门接收DataSource-dbutils (30)
Dbutils 操作数据第三方包.依赖数据源DataSource(DBCP|C3p0). QueryRunner – 接收DataSource|Connection,查询数据删除修改操作.返回结果. ...
- java学习笔记—第三方数据库连接池包1(29)
第一步:导入dbcp包 第二步:通过核心类连接数据 BasicDataSource它是javax.sql.DataSrouce的子类. 一个工具类:BasicDataSourceFactory. 手工 ...
- Java学习笔记十:Java的数组以及操作数组
Java的数组以及操作数组 一:什么是数组: 数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学生的成绩 数组中的元 ...
- Java学习笔记(6)---正则表达式,方法
1.正则表达式: a.定义: 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. 在Java,一个字符串其实就是一 ...
- java 学习笔记1 java语言概述及开发环境
高级语言运行机制 高级语言按程序的执行方式分为编译型和解释型两种. java语言比较特殊,Java程序的执行必须经过先编译后解释的步骤. 1 编译生成字节码,只面向JVM(.class) 2Jvm执行 ...
- Java 学习笔记 (三) Java 日期类型
以下内容摘自: https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...
- Java学习笔记之—Java基础
将学习到的JAVA基础用xmind记录了下来,需要原件的可以私信
- Java学习笔记--通过java.net.URLConnection发送HTTP请求
http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...
- JAVA学习笔记之JAVA 对象引用以及赋值
关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没 ...
- Java学习笔记三:Java的变量、常量、变量的类型及使用规则
Java的变量.常量.变量的类型及使用规则 每一种语言都有一些具有特殊用途的词,Java也不例外,它们被称为关键字.关键字对 Java 的编译器有着特殊的意义. 一:Java中的关键字: 注:Java ...
随机推荐
- iview table添加input框,且校验
方法一 render渲染 { title: "用户名", key: "stockPrice", render: (h, params) => { retu ...
- 使用layui时遇到的问题以及解决文章链接
1.斜线表头效果 2.表格嵌套使用 3.layui数据表格跨行自动合并 4.layui表格数据变更的处理方式 5.layer弹窗动态添加KindEditor编辑器 6.layer弹出层自动调节位置 7 ...
- C++实现单链表相关操作
#include<iostream>#include<cstdlib>//C++动态分配存储空间using namespace std;#define OK 1#define ...
- pymongo解决查询的时区相差8小时
背景 最近需要到mongoDB中查询数据,但是发现返回的日期总是和实际时间差8小时.到数据库查询了一下看到时间的确是准确的,只是查询出来的比实际的少了8小时. 通过网上查找资料了解到默认时区是UTC, ...
- cheerio中文文档
这篇参考手册是对cheerio 官方文档的中文翻译 cheerio是jquery核心功能的一个快速灵活而又简洁的实现,主要是为了用在服务器端需要对DOM进行操作的地方 简介 让你在服务器端和htm ...
- 渗透测试工具&导航合集
#前言 表哥们一般都有自己强大的工具库,今天我也稍作整理,分享交流出来一部分 #信息收集 ####dirbuster kali自带的一款工具,fuzz很方便 ####gorailgun 一款自动化做的 ...
- 如何保证RabbitMQ的消息不会丢失?怎么保证RabbitMQ的可靠性?
生产者: 原因: 由于网络原因导致消息发送失败,消息队列没有接收到生产者发送的消息,但生产者认为消息发送成功. 解决办法: transaction模式:事务模式:开启事务,发送消息,成功提交事务,失败 ...
- 法拉第未来任命新CFO!贾跃亭激动发声
近段时间以来,贾跃亭旗下的的法拉第未来(Faraday Future,简称 FF)可谓是动作频频. 一天前,有媒体报道称,FF 任命 Zvi Glasman 为其首席财务官.其将负责公司财务.投资者关 ...
- 在Unity3D中开发的Dissolve Shader
Swordmaster Dissolve Shaders 特点 本插件共包含两种Dissolve Shader: (1).一种类型是Bumped Specular工作流的Dissolve Shader ...
- SQL 之 SQL server 中 遇到字段的值为null 遇到的坑
SQL server 中,如果查询或筛选的条件中,某字段的值为NULL,如何处理?又有哪些坑需要避免呢? 直接上坑 : NULL 与其他任何类型进行逻辑判断: [解释]: NULL表示值未知,和空字符 ...