国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 崇左市| 天津市| 那曲县| 崇州市| 库尔勒市| 吉水县| 福鼎市| 贡觉县| 新化县| 庆元县| 怀安县| 南投市| 南川市| 嘉义县| 镇巴县| 河西区| 丹棱县| 余庆县| 华安县| 夹江县| 淮南市| 榆中县| 贵南县| 岱山县| 宝鸡市| 渝北区| 桦南县| 临沭县| 安陆市| 盐池县| 阿拉尔市| 永嘉县| 光泽县| 衡阳县| 建德市| 新疆| 曲周县| 宁安市| 康保县| 衡水市| 新龙县|