Java實(shí)現(xiàn)文件和base64流的相互轉(zhuǎn)換功能示例
本文實(shí)例講述了Java實(shí)現(xiàn)文件和base64流的相互轉(zhuǎn)換功能。分享給大家供大家參考,具體如下:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* 文件與base64的互相轉(zhuǎn)換操作
*/
public class testFile {
public static void main(String[] args) {
testFile t = new testFile();
try {
String ret = t.encodeBase64File("d://IE和火狐js或css差異.docx");
System.err.println(ret);
t.decoderBase64File(ret, "d://ghsTest/retFile.docx", "d://ghsTest/");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 將文件轉(zhuǎn)成base64 字符串
*
* @param path文件路徑
* @return *
* @throws Exception
*/
public static String encodeBase64File(String path) throws Exception {
File file = new File(path);
FileInputStream inputFile = new FileInputStream(file);
byte[] buffer = new byte[(int) file.length()];
inputFile.read(buffer);
inputFile.close();
return new BASE64Encoder().encode(buffer);
}
/**
* 將base64字符解碼保存文件
*
* @param base64Code
* @param targetPath
* @throws Exception
*/
public static void decoderBase64File(String base64Code, String targetPath,String catalogue)
throws Exception {
File file = new File(catalogue);
if(file.exists()==false){
file.mkdirs();
}
byte[] buffer = new BASE64Decoder().decodeBuffer(base64Code);
FileOutputStream out = new FileOutputStream(targetPath);
out.write(buffer);
out.close();
}
}
PS:這里再推薦幾款加密解密相關(guān)在線工具供大家參考使用:
線編碼轉(zhuǎn)換工具(utf-8/utf-32/Punycode/Base64):
http://tools.jb51.net/transcoding/decode_encode_tool
BASE64編碼解碼工具:
http://tools.jb51.net/transcoding/base64
圖片轉(zhuǎn)換為Base64編碼在線工具:
http://tools.jb51.net/transcoding/img2base64
在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
Java實(shí)現(xiàn)時(shí)間和字符串互轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了如何通過Java實(shí)現(xiàn)時(shí)間對(duì)象和字符串互相轉(zhuǎn)換,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-10-10
springboot動(dòng)態(tài)定時(shí)任務(wù)的實(shí)現(xiàn)方法示例
這篇文章主要給大家介紹了關(guān)于springboot動(dòng)態(tài)定時(shí)任務(wù)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Java異步線程中的CompletableFuture與@Async詳解
這篇文章主要介紹了Java異步線程中的CompletableFuture與@Async詳解,CompletableFuture是java中提供的一個(gè)異步執(zhí)行類,@Async是Spring提供的異步執(zhí)行方法,當(dāng)調(diào)用方法單獨(dú)開啟一個(gè)線程進(jìn)行調(diào)用,需要的朋友可以參考下2024-01-01
mybatis?xml文件熱加載實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了mybatis?xml文件熱加載實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
MyBatis使用注解開發(fā)實(shí)現(xiàn)步驟解析
這篇文章主要介紹了MyBatis使用注解開發(fā)實(shí)現(xiàn)步驟解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
SpringBoot validator參數(shù)驗(yàn)證restful自定義錯(cuò)誤碼響應(yīng)方式
這篇文章主要介紹了SpringBoot validator參數(shù)驗(yàn)證restful自定義錯(cuò)誤碼響應(yīng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Java Socket實(shí)現(xiàn)猜數(shù)字小游戲
這篇文章主要為大家詳細(xì)介紹了Java Socket實(shí)現(xiàn)猜數(shù)字小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09
一文帶你學(xué)會(huì)Spring?JDBC的使用
JDBC?就是?數(shù)據(jù)庫開發(fā)?操作的?代名詞,因?yàn)橹灰乾F(xiàn)代商業(yè)項(xiàng)目的開發(fā)那么一定是離不開?數(shù)據(jù)庫?的,不管你搞的是什么,只要是想使用動(dòng)態(tài)的開發(fā)結(jié)構(gòu),那么一定就是?JDBC?,那么下面來教教大家傳統(tǒng)JDBC的使用2022-09-09
Java如何將json字符串與實(shí)體類互相轉(zhuǎn)換
在我們調(diào)用三方平臺(tái)接口時(shí),經(jīng)常需要將我們封裝的實(shí)體類轉(zhuǎn)換為json作為傳參,下面這篇文章主要給大家介紹了關(guān)于Java如何將json字符串與實(shí)體類互相轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2023-11-11

