国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

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

2024-07-14 08:42:22
字體:
供稿:網(wǎng)友

本例子的目的在于測試往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)妥,嚴重建議采取以下方式:

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)化為二進制字符串,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 姚安县| 荆州市| 盱眙县| 秭归县| 灵石县| 马尔康县| 卢龙县| 新晃| 民县| 甘孜县| 镇原县| 南涧| 中西区| 怀宁县| 广灵县| 延长县| 四会市| 巴彦县| 德钦县| 灵川县| 津南区| 鹤山市| 吐鲁番市| 梁山县| 通州区| 浦江县| 赫章县| 昭通市| 红桥区| 凤山市| 长乐市| 陆川县| 德州市| 宁晋县| 海兴县| 福建省| 夏河县| 扎兰屯市| 仲巴县| 西贡区| 喀喇沁旗|