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

java讀取圖片并轉(zhuǎn)化為二進制字符串的實現(xiàn)方法

 更新時間:2018年09月16日 17:39:24   作者:正在戰(zhàn)斗中  
這篇文章主要介紹了java讀取圖片并轉(zhuǎn)化為二進制字符串的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

本例子的目的在于測試往oracle數(shù)據(jù)庫中插入blob字段

public static String getImgStr(String imgFile){
  //將圖片文件轉(zhuǎn)化為字節(jié)數(shù)組字符串,并對其進行Base64編碼處理
  
  InputStream in = null;
  byte[] data = null;
  //讀取圖片字節(jié)數(shù)組
  try
  {
   in = new FileInputStream(imgFile);  
   data = new byte[in.available()];
   in.read(data);
   in.close();
  }
  catch (IOException e)
  {
   e.printStackTrace();
  }
  return new String(Base64.encodeBase64(data));
 }

--

利用以上的思路寫的一個測試

public class ReadImageTest {
 public static void main(String[] args) throws IOException {
   FileInputStream fis = new FileInputStream(new File("C:\\Users\\luzhifei\\Pictures\\hc_logo.png"));   
   String picStr="";
   byte[] read = null;
   int len = 0;
   read= new byte[fis.available()];
   fis.read(read);
   String baseStr= Base64.getEncoder().encodeToString(read);
   //System.out.println( baseStr);
   byte[] op= Base64.getDecoder().decode(baseStr);
   // System.out.println(new String(op));
   FileOutputStream fos = new FileOutputStream(new File("d:\\temp\\1.jpg"));
   fos.write(op,0,op.length );
   fos.flush();
   fos.close();
 }
}

但是available()有一定的限制。

為了穩(wěn)妥,嚴(yán)重建議采取以下方式:

public static void imageToBase64Str() throws IOException{
   FileInputStream fis = new FileInputStream(new File("C:\\Users\\luzhifei\\Pictures\\hc_logo.png"));
   byte[] read = new byte[1024];
   int len = 0;
   List<byte[]> blist=new ArrayList<byte[]>();
   int ttllen=0;
   while((len = fis.read(read))!= -1){
    byte[] dst=new byte[len];
    System.arraycopy(read, 0, dst, 0, len);
    ttllen+=len;
    blist.add(dst);
   }
   fis.close();
   byte[] dstByte=new byte[ttllen];
   int pos=0;
   for (int i=0;i<blist.size();i++){
    if (i==0){
     pos=0;
    }
    else{
    pos+=blist.get(i-1).length; 
    }
    System.arraycopy(blist.get(i), 0, dstByte, pos, blist.get(i).length);
   }
   String baseStr= Base64.getEncoder().encodeToString(dstByte);
   byte[] op= Base64.getDecoder().decode(baseStr);
   FileOutputStream fos = new FileOutputStream(new File("d:\\temp\\2.jpg"));
   fos.write(op,0,op.length );
   fos.flush();
   fos.close();
 }

總結(jié)

以上所述是小編給大家介紹的java讀取圖片并轉(zhuǎn)化為二進制字符串,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!

相關(guān)文章

  • Java將一個正整數(shù)分解質(zhì)因數(shù)的代碼

    Java將一個正整數(shù)分解質(zhì)因數(shù)的代碼

    這篇文章主要介紹了將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5,需要的朋友可以參考下
    2017-02-02
  • Java 函數(shù)式編程要點總結(jié)

    Java 函數(shù)式編程要點總結(jié)

    函數(shù)式編程并不是Java新提出的概念,其與指令編程相比,強調(diào)函數(shù)的計算比指令的計算更重要;與過程化編程相比,其中函數(shù)的計算可以隨時調(diào)用。Java8新引入函數(shù)式編程方式,大大的提高了編碼效率。本文將對涉及的對象等進行統(tǒng)一的學(xué)習(xí)及記錄。
    2021-06-06
  • 一個簡單的SpringBoot項目快速搭建詳細步驟

    一個簡單的SpringBoot項目快速搭建詳細步驟

    Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程,下面這篇文章主要給大家介紹了一個簡單的SpringBoot項目快速搭建詳細步驟,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • SpringMVC 如何使用注解完成登錄攔截

    SpringMVC 如何使用注解完成登錄攔截

    這篇文章主要介紹了SpringMVC 如何使用注解完成登錄攔截,幫助大家更好的理解和學(xué)習(xí)使用springMVC,感興趣的朋友可以了解下
    2021-03-03
  • SpringBoot整合Echarts實現(xiàn)用戶人數(shù)和性別展示功能(詳細步驟)

    SpringBoot整合Echarts實現(xiàn)用戶人數(shù)和性別展示功能(詳細步驟)

    這篇文章主要介紹了SpringBoot整合Echarts實現(xiàn)用戶人數(shù)和性別展示,通過數(shù)據(jù)庫設(shè)計、實現(xiàn)數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和控制層的代碼編寫,以及前端頁面的開發(fā),本文詳細地介紹了SpringBoot整合Echarts的實現(xiàn)步驟和代碼,需要的朋友可以參考下
    2023-05-05
  • 細數(shù)java for循環(huán)中的那些坑

    細數(shù)java for循環(huán)中的那些坑

    這篇文章主要介紹了Java for循環(huán)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • spring cloud zuul 與 sentinel的結(jié)合使用操作

    spring cloud zuul 與 sentinel的結(jié)合使用操作

    這篇文章主要介紹了spring cloud zuul 與 sentinel 的結(jié)合使用操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java中2個Integer比較相同的四種方式舉例

    Java中2個Integer比較相同的四種方式舉例

    這篇文章主要介紹了Java中比較兩個Integer對象的四種方式,并解釋了每種方式的原理和適用范圍,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-01-01
  • 我賭你不清楚Spring中關(guān)于Null的這些事

    我賭你不清楚Spring中關(guān)于Null的這些事

    這篇文章主要介紹了我賭你不清楚Spring中關(guān)于Null的這些事,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • php 頁面之間傳值的三種方法實例代碼

    php 頁面之間傳值的三種方法實例代碼

    網(wǎng)站開發(fā)過程中,我們經(jīng)常需要在不同頁面之間進行值的傳遞。本文章向大家講解PHP頁面之間傳值的三種方法。需要的碼農(nóng)可以參考一下
    2016-10-10

最新評論

宁南县| 呼和浩特市| 松桃| 通城县| 霍山县| 光泽县| 昭平县| 平武县| 普定县| 固始县| 咸宁市| 乌什县| 彩票| 高淳县| 西丰县| 大悟县| 景宁| 拉孜县| 徐闻县| 云安县| 县级市| 老河口市| 镇江市| 仁布县| 黄骅市| 理塘县| 延吉市| 崇州市| 本溪市| 邵阳市| 中宁县| 秦皇岛市| 崇州市| 马边| 嘉善县| 绥棱县| 精河县| 漳平市| 鹤壁市| 南木林县| 凉城县|