java 將 jar包、excel、txt等檔案儲存於mysql
首先要注意mysql的欄位型別,可以選擇BLOB型別或text型別,這兩種型別是進行儲存檔案位元組碼的型別;
具體使用要根據傳入的檔案的大小限制,這裡我們是不能大於16M,所以這裡使用的是 mediumtext型別的欄位;
本次通過儲存檔案的Base64字串來進行儲存及反生成的;
1.如何將檔案存入mysql
有的時候我們是接收前端傳過來的檔案,所以我們不需要手動獲取本地檔案,可直接使用;比如我們接
收到了一個檔案叫file :
FileInputStream inputFile = new FileInputStream(file); byte[] buffer = new byte[(int) files.length()]; inputFile.read(buffer); inputFile.close(); String encode = new BASE64Encoder().encode(buffer);
如果是從本地取,則開始要獲取檔案: File file = new File(" 檔案路徑"); 後續就是上面程式碼;
當獲取到Bbse64的字串後及可儲存進mysql欄位,型別對應於java的String;
2.如何將mysql中的字串轉成File檔案
首先我們要在本地建立一個空的File檔案的輸出流,這是用來儲存存在資料庫裡的file資料的容器;
這裡我用jar做示例:
FileOutputStream out = new FileOutputStream("D:\\demo.jar"); //建立一個jar檔案的輸出流,此時是空的
然後取出字串使用java提供的Base64的解碼工具進行解碼,將解碼後的資料存進上方輸出流指定的檔案;
byte[] buffer = new BASE64Decoder().decodeBuffer(ibconFile1.getFileData());
out.write(buffer); out.close();
此時輸出流的寫入檔案也就是demo.jar已經生成完成,接下來就可以操作這個File檔案,進行操作接下來的業務;
File toFile = new File("D:\\demo.jar");
OK,file檔案生成成功,資料不會損壞,簡單儲存檔案,百分百還原 !!!!!!!!!
如有疑問,或者愛交流學習JAVA的小夥伴們,可以加Q群 + 583055236 進行交流溝通!!!!!