java圖片資料庫二進制-ag真人国际官网
㈠ java涓 浠blob瀛樺偍鐨勫浘鐗囧備綍浠ヤ簩榪涘埗嫻佸湪jsp欏甸潰鏄劇ず錛岃屼笖鏄鎵歸噺鏄劇ず鍥劇墖錛屾眰浠g爜
// 鍚庡彴浠g爜
list瀛樺偍姣忓紶鍥劇墖鐨刦ileid
閽堝規瘡涓猣ile鍐欒緭鍑烘祦,鍐欏湪鍗曠嫭鐨刴ethod涓.
// jsp渚
㈡ java 浜岀淮鐮佸浘鐗囪漿浜岃繘鍒跺瓨榪涙暟鎹搴 浣跨敤浠涔堟妧鏈鍙浠ュ疄鐜板憿錛
鏁版嵁搴撲嬌鐢╞lob綾誨瀷
鍥劇墖浣跨敤java io嫻佹搷浣滐紝灝嗗浘鐗囪漿鎹涓篵yte[]錛屽瓨鍏mysql涓
㈢ 浣跨敤java浠ヤ簩榪涘埗嫻佺殑鏂瑰紡灝嗗浘鐗囧瓨鍒癕ysql鏁版嵁搴撲腑鎬庝箞瀛樿︾粏涓鐐癸紒璋㈣阿錛
浠byte[]鏂瑰紡鑾峰彇鍒版枃浠舵暟鎹灝辮屼簡 瀛樻垚blob鐨
璇誨彇鐨勬椂鍊欐妸byte[]鍐嶈漿鎹㈡垚鏂囦歡鏍煎紡
㈣ java中如何把圖片轉換成二進制流
java中將圖片轉為二進制流只需要使用fileimageinputstream取得圖片文件,然後使用bytearrayoutputstream 寫入到二進制流中即可,下面是詳細代碼:
//圖片到byte數組
publicbyte[]image2byte(stringpath){
byte[]data=null;
fileimageinputstreaminput=null;
try{
input=newfileimageinputstream(newfile(path));
bytearrayoutputstreamoutput=newbytearrayoutputstream();
byte[]buf=newbyte[1024];
intnumbytesread=0;
while((numbytesread=input.read(buf))!=-1){
output.write(buf,0,numbytesread);
}
data=output.tobytearray();
output.close();
input.close();
}
catch(filenotfoundexceptionex1){
ex1.printstacktrace();
}
catch(ioexceptionex1){
ex1.printstacktrace();
}
returndata;
}
另外,如果需要將byte[]存回圖片或轉為string,則:
//byte數組到圖片
publicvoidbyte2image(byte[]data,stringpath){
if(data.length<3||path.equals(""))return;
try{
=newfileimageoutputstream(newfile(path));
imageoutput.write(data,0,data.length);
imageoutput.close();
system.out.println("makepicturesuccess,pleasefindimagein" path);
}catch(exceptionex){
system.out.println("exception:" ex);
ex.printstacktrace();
}
}
//byte數組到16進制字元串
publicstringbyte2string(byte[]data){
if(data==null||data.length<=1)return"0x";
if(data.length>200000)return"0x";
stringbuffersb=newstringbuffer();
intbuf[]=newint[data.length];
//byte數組轉化成十進制
for(intk=0;kbuf[k]=data[k]<0?(data[k] 256):(data[k]);
}
//十進制轉化成十六進制
for(intk=0;kif(buf[k]<16)sb.append("0" integer.tohexstring(buf[k]));
elsesb.append(integer.tohexstring(buf[k]));
}
return"0x" sb.tostring().touppercase();
}
一種方法是把圖像文件本身放在某個文件夾里,然後在數據表裡設一個「路徑「欄位,類型為字元串,存圖像的路徑(比如「d:\files\xxx.jpg」)。
另一種方法是,把圖像文件本身,作為一個巨大的二進制數據,放在資料庫中;具體方法是,數據表中設置一個」數據「欄位,類型是二進制數據,存放圖像本體。
㈥ 璇烽棶java濡備綍寰鏁版嵁搴撻噷鎻掑叆浜岃繘鍒舵暟鎹錛
鐢ㄦ祦璇誨叆鍥劇墖,鍐嶇敤byte[]鏁扮粍璇誨彇杞鎹㈡祦涓鐨勫浘鐗囨暟鎹杞鎴愪簩榪涘埗.鎺ョ潃鐢↗dbc鎶婁簩榪涘埗鎻掑叆鏁版嵁搴撳瓨 ofileinputstream fis = null;// 澶勭悊紜鐩樼殑浣庣錛岃緭鍏ユ祦 o try { o fis = new fileinputstream( "鍥劇墖璺寰" );// 浣庣嫻佺粦瀹氱‖鐩樹笂鐨勬枃浠 o o byte [] buffer = new byte[ 1024 ]; o while ( true ) {// 寰鐜璇誨彇嫻侀噷鐨勬暟鎹 o int len = fis.read( buffer ); o if ( -1 == len ) {// 濡傛灉宸茬粡璇誨埌鏂囦歡鏈灝 o break; o } o ........//jdbc鎻掑叆浠g爜鍙瑕佹妸涓婇潰鐨刡uffer寰鐜鎻掑叆鏁版嵁搴撳瓨o } o } catch ( exception e ) { o e.printstacktrace(); o } finally { o try { o fis.close(); o } catch ( exception e ) { o e.printstacktrace(); o } o } o}