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

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

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

1.用法介紹

方式一:DatatypeConverter

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

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

  編碼

/**
 * base64編碼之方法一
 * @explain DatatypeConverter.java實(shí)現(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實(shí)現(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

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

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

  編碼

/**
 * base64編碼之方法二
 * @explain Base64.java實(shí)現(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實(shí)現(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實(shí)現(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實(shí)現(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.測(cè)試

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.效率比較

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

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

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

相關(guān)文章

最新評(píng)論

日喀则市| 抚远县| 会宁县| 永清县| 宜都市| 凤冈县| 衢州市| 兴义市| 佛冈县| 邯郸县| 开江县| 桐庐县| 滁州市| 安义县| 监利县| 广东省| 阿拉善盟| 山西省| 宁河县| 雷山县| 汕头市| 贞丰县| 商都县| 深州市| 通渭县| 乌拉特后旗| 手机| 来安县| 醴陵市| 黄平县| 太谷县| 堆龙德庆县| 侯马市| 疏附县| 南安市| 靖州| 新龙县| 铜梁县| 新营市| 普定县| 巴林左旗|