jdk6或者7Base64转码与解码
生活随笔
收集整理的這篇文章主要介紹了
jdk6或者7Base64转码与解码
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
昨天遇到了一個問題,項目有些老舊,開發(fā)環(huán)境用的javase1.6,運行環(huán)境是jdk1.7,都無法使用jdk8自帶的編碼和解碼。
如果有jdk8,請使用這幾行代碼。
String orig = "hello world!";String desc = Base64.getEncoder().encodeToString(orig.getBytes(StandardCharsets.UTF_8));System.out.println("加密后的字符串為:"+desc);String unDecodeStr=new String(Base64.getDecoder().decode(desc),StandardCharsets.UTF_8);System.out.println("解密后的字符串為"+unDecodeStr)如果是8以下,可以用以下兩種方法解決。
1、嘗試找你項目中的其它包里面有沒有這個base64相關(guān)的包,比如我的項目里有個? fastjson 包,就可以使用
// 類 com.alibaba.fastjson.util.Base64 String nStr =new String(Base64.decodeFast(encodeStr));System.out.println(nStr);2、也有開源的jar包,?javabase64-1.2.jar,可以直接點擊后面進行下載下載地址。引入這個jar包后,幾行代碼就可以實現(xiàn)編碼與解碼了:
示例代碼:
String類型 進行Base64編碼
String encoded = Base64.encode("Hello, world!");????String類型 進行Base64解碼
String decoded = Base64.decode(encoded);?指定字符編碼方式
String encoded = Base64.encode("Hello, world!", "UTF-8");????String decoded = Base64.decode(encoded, "UTF-8");???對文件進行編碼:
如果文件比較小,可以通過以下方式,直接讀取到內(nèi)存中進行編碼處理
byte[] source = ...; // load your data herebyte[] encoded = Base64.encode(source);byte[] decoded = Base64.decode(encoded);如果大件比較大,則建議使用stream:
代碼示例Base64編碼:
InputStream inputStream = new FileInputStream("source.jpg");OutputStream outputStream = new FileOutputStream("encoded.b64");Base64.encode(inputStream, outputStream);outputStream.close();inputStream.close();代碼示例Base64解碼:InputStream inputStream = new FileInputStream("encoded.b64");OutputStream outputStream = new FileOutputStream("decoded.jpg");Base64.decode(inputStream, outputStream);outputStream.close();inputStream.close();
參考原文:https://blog.csdn.net/chenleixing/article/details/46543901?
?
總結(jié)
以上是生活随笔為你收集整理的jdk6或者7Base64转码与解码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue整合ueditor
- 下一篇: Android ListView优化总结