最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java base64編碼、解碼的三種方式總結(jié)

 更新時間:2020年10月22日 08:58:26   作者:Marydon  
這篇文章主要介紹了java base64編碼、解碼的三種方式,幫助大家更好的理解和學(xué)習(xí)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編碼、解碼的三種方式總結(jié)的詳細內(nèi)容,更多關(guān)于java base64編碼、解碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

宝兴县| 南宫市| 德化县| 通许县| 定陶县| 长垣县| 阳曲县| 宁河县| 信丰县| 东海县| 甘德县| 石柱| 新建县| 扶余县| 汝南县| 甘泉县| 循化| 昭平县| 松阳县| 抚顺县| 淄博市| 辽阳县| 来凤县| 阿瓦提县| 方山县| 同心县| 克什克腾旗| 德化县| 临猗县| 海城市| 苗栗县| 南江县| 嘉荫县| 上饶县| 永宁县| 和林格尔县| 临夏县| 河北省| 渭南市| 武宁县| 观塘区|