亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java base64編碼、解碼的三種方式總結

 更新時間:2020年10月22日 08:58:26   作者:Marydon  
這篇文章主要介紹了java base64編碼、解碼的三種方式,幫助大家更好的理解和學習Java,感興趣的朋友可以了解下

1.用法介紹

方式一:DatatypeConverter

  說明:使用jdk自帶的DatatypeConverter.java類實現(xiàn),但是jdk版本必須>=1.6。

import java.io.UnsupportedEncodingException;
import javax.xml.bind.DatatypeConverter;

  編碼

/**
 * base64編碼之方法一
 * @explain DatatypeConverter.java實現(xiàn)
 * @param str
 *   待編碼字符串
 * @return 編碼字符串
 */
public static String encode(String str) {
 // base64字符串
 String base64Str = "";
 try {
  // String-->byte[]
  byte[] data = str.getBytes("utf-8");
  // 編碼
  base64Str = DatatypeConverter.printBase64Binary(data);
 } catch (UnsupportedEncodingException e) {
  e.printStackTrace();
 }
 return base64Str;
}  

  解碼

/**
 * base64解碼之方法一
 * @explain DatatypeConverter.java實現(xiàn)
 * @param base64Str
 *            待解碼字符串
 * @return 解碼字符串
 */
public static String decode(String base64Str) {
    // 解碼后的字符串
    String str = "";
    // 解碼
    byte[] base64Data = DatatypeConverter.parseBase64Binary(base64Str);
    try {
        // byte[]-->String
        str = new String(base64Data, "utf-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    return str;
}  

方式二:Base64

  說明:使用jdk自帶的Base64.java類實現(xiàn),但是jdk版本必須>=1.8。

import java.io.UnsupportedEncodingException;
import java.util.Base64;

  編碼

/**
 * base64編碼之方法二
 * @explain Base64.java實現(xiàn)
 * @param str
 *            待編碼字符串
 * @return 編碼字符串
 */
public static String encode2(String str) {
    // base64字符串
    String base64Str = "";
    try {
        // String-->byte[]
        byte[] data = str.getBytes("utf-8");
        // 編碼
        base64Str =Base64.getEncoder().encodeToString(data);
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    return base64Str;
}  

  解碼

/**
 * base64解碼之方法二
 * @explain Base64.java實現(xiàn)
 * @param base64Str
 *            待解碼字符串
 * @return 解碼字符串
 */
public static String decode2(String base64Str) {
    // 解碼后的字符串
    String str = "";
    // 解碼
    byte[] base64Data = Base64.getDecoder().decode(base64Str);
    try {
        // byte[]-->String
        str = new String(base64Data, "utf-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    return str;
} 

方式三:Base64

  所需jar包:commons-codec.jar

import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.binary.Base64;

  編碼

/**
 * base64編碼之方法三
 * @explain Base64.java實現(xiàn)
 * @param str
 *            待編碼字符串
 * @return 編碼字符串
 */
public static String encode3(String str) {
    // base64字符串
    String base64Str = "";
    try {
        // String-->byte[]
        byte[] data = str.getBytes("utf-8");
        // 編碼
        base64Str =Base64.encodeBase64String(data).replaceAll("\r\n", "");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    return base64Str;
}
 

  解碼

/**
 * base64解碼之方法三
 * @explain Base64.java實現(xiàn)
 * @param base64Str
 *            待解碼字符串
 * @return 解碼字符串
 */
public static String decode3(String base64Str) {
    // 解碼后的字符串
    String str = "";
    // 解碼
    byte[] base64Data = Base64.decodeBase64(base64Str);
    try {
        // byte[]-->String
        str = new String(base64Data, "utf-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    return str;
}

2.測試

public static void main(String[] args) {
    String str = "http://www.cnblogs.com/Marydon20170307";
    String base64 = Base64Utils.encode(str);// aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9NYXJ5ZG9uMjAxNzAzMDc=
    System.out.println(base64);
    String str2 = Base64Utils.decode(base64);
    System.out.println(str.equals(str2));// true
     
}

3.效率比較

  快-->慢:方式二 > 方式一 > 方式三

  因此,如果項目用的是jdk1.8,最佳選擇是方式二;jdk1.6,最佳選擇是方式一。

以上就是java base64編碼、解碼的三種方式總結的詳細內(nèi)容,更多關于java base64編碼、解碼的資料請關注腳本之家其它相關文章!

相關文章

  • springboot讀取application.yml報錯問題及解決

    springboot讀取application.yml報錯問題及解決

    這篇文章主要介紹了springboot讀取application.yml報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java字符串相加時的內(nèi)存表現(xiàn)和原理分析

    java字符串相加時的內(nèi)存表現(xiàn)和原理分析

    這篇文章主要介紹了java字符串相加時的內(nèi)存表現(xiàn)和原理分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 詳解JavaEE使用過濾器實現(xiàn)登錄(用戶自動登錄 安全登錄 取消自動登錄黑用戶禁止登錄)

    詳解JavaEE使用過濾器實現(xiàn)登錄(用戶自動登錄 安全登錄 取消自動登錄黑用戶禁止登錄)

    主要介紹用戶的自動登錄和取消自動登錄,以及實現(xiàn)一天自動登錄或者n天實現(xiàn)自動登錄,當用戶ip被加入到黑名單之后,直接利用過濾器返回一個警告頁面。接下來通過本文給大家介紹JavaEE使用過濾器實現(xiàn)登錄的相關知識,感興趣的朋友一起學習吧
    2016-05-05
  • Java中工具Jstack的使用實例

    Java中工具Jstack的使用實例

    jstack用于生成java虛擬機當前時刻的線程快照,下面這篇文章主要給大家介紹了關于Java中工具Jstack使用的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • Spring AOP 對象內(nèi)部方法間的嵌套調用方式

    Spring AOP 對象內(nèi)部方法間的嵌套調用方式

    這篇文章主要介紹了Spring AOP 對象內(nèi)部方法間的嵌套調用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot3使用devtools實現(xiàn)代碼熱部署的詳細步驟

    SpringBoot3使用devtools實現(xiàn)代碼熱部署的詳細步驟

    Spring Boot DevTools是一組用于提高開發(fā)人員生產(chǎn)力,并加速Spring Boot應用程序開發(fā)的工具,它提供了一些功能,可以幫助開發(fā)人員更快速地構建應用程序,并減少常見的開發(fā)問題,本文給大家介紹了SpringBoot3使用devtools實現(xiàn)代碼熱部署的詳細步驟,需要的朋友可以參考下
    2024-01-01
  • 淺談Maven的安裝及修改為阿里云下載依賴

    淺談Maven的安裝及修改為阿里云下載依賴

    下面小編就為大家?guī)硪黄獪\談Maven的安裝及修改為阿里云下載依賴。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Java  匿名內(nèi)部類詳解及實例代碼

    Java 匿名內(nèi)部類詳解及實例代碼

    這篇文章主要介紹了Java 匿名內(nèi)部類詳解及實例代碼的相關資料,需要的朋友可以參考下
    2017-02-02
  • es創(chuàng)建索引和mapping的實例

    es創(chuàng)建索引和mapping的實例

    這篇文章主要介紹了es創(chuàng)建索引和mapping的實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Spring?Boot常用的參數(shù)驗證技巧和使用方法

    Spring?Boot常用的參數(shù)驗證技巧和使用方法

    Spring Boot是一個使用Java編寫的開源框架,用于快速構建基于Spring的應用程序,這篇文章主要介紹了Spring?Boot常用的參數(shù)驗證技巧和使用方法,需要的朋友可以參考下
    2023-09-09

最新評論