当前位置:   article > 正文

Java8中的Base64工具使用_base64encoders是哪个包的

base64encoders是哪个包的

在之前的项目中因为使用了Base64编码,而导入了sun.misc.Base64Encoder这个包,每次在使用maven打包时控制台总输出警告:Base64Encoder这个API将会在未来的版本中移除。查阅资料后发现自Java9开始已经不支持这个API,应使用java.util.Base64这个包代替。具体使用方法如下:

首先导入Base64

import java.util.Base64;

不熟悉怎么使用的话,可以在IDE中Ctrl+鼠标左键进入他的源码,可以找到相关的操作方法,我们重点关注编码和解码这两个函数,可以看到其中提供了getEncdoer()getDecoder()这两个静态方法供我们使用。

  1. public class Base64 {
  2. ......
  3. private Base64() {}
  4. public static Encoder getEncoder() {
  5. return Encoder.RFC4648;
  6. }
  7. public static Decoder getDecoder() {
  8. return Decoder.RFC4648;
  9. }
  10. ......
  11. }

不难发现,它们的返回值分别是EnCoderDecoder类型,而我们一般Base64编码后需要的返回值是String类型,同样在返回值上Ctrl+鼠标左键,可以在其内部找到一个encodeToString()方法,另外解码时需要将String类型的Base64编码再次转换为byte数组,可以在Decoder类中找到一个decode()方法,用于解码工作。

  1. /*
  2. * Base64编码
  3. * 用于将传入的byte数组转为String类型
  4. */
  5. public String encodeToString(byte[] src) {
  6. byte[] encoded = encode(src);
  7. return new String(encoded, 0, 0, encoded.length);
  8. }
  9. /*
  10. * Base64解码
  11. * 用于将传入的String类型转为byte数组
  12. */
  13. public byte[] decode(String src) {
  14. return decode(src.getBytes(StandardCharsets.ISO_8859_1));
  15. }

Base64的基本使用

  1. import java.util.Base64;
  2. public class StrConvertBase64 {
  3. public static void main(String[] args) {
  4. // 字符串转Base64
  5. String enCodeStr = getBase64EnCoder("哈哈哈哈");
  6. System.out.println(enCodeStr);
  7. // Base64转字符串
  8. String deCodeStr = getBase64DeCoder("uf65/rn+uf4=");
  9. System.out.println(deCodeStr);
  10. }
  11. /**
  12. * Base64编码
  13. * @param src
  14. * @return
  15. */
  16. public static String getBase64EnCoder(String str) {
  17. // 将源字符串转为byte数组
  18. byte [] strBytes = str.getBytes();
  19. // 链式调用,返回结果
  20. return Base64.getEncoder().encodeToString(strBytes);
  21. }
  22. /**
  23. * Base64解码
  24. * @param src
  25. * @return
  26. */
  27. public static String getBase64DeCoder(String str) {
  28. // 将Base64编码转为byte数组
  29. byte [] base64Bytes = Base64.getDecoder().decode(str);
  30. // 将Byte数组转为String,返回结果
  31. return new String(base64Bytes);
  32. }
  33. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/203021
推荐阅读
相关标签
  

闽ICP备14008679号