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

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

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

1.用法介紹

方式一:DatatypeConverter

  說明:使用jdk自帶的DatatypeConverter.java類實(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

  說明:使用jdk自帶的Base64.java類實(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.測試

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é)的詳細(xì)內(nèi)容,更多關(guān)于java base64編碼、解碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論