欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

String與Blob互轉(zhuǎn)和file文件與Blob互轉(zhuǎn)方式

 更新時(shí)間:2023年05月31日 09:47:02   作者:膩&愛(ài)  
這篇文章主要介紹了String與Blob互轉(zhuǎn)和file文件與Blob互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Blob對(duì)字符串類(lèi)型操作

String轉(zhuǎn)換Blob

可以通過(guò)SerialBlob創(chuàng)建Blob對(duì)象,SerialBlob下有兩個(gè)構(gòu)造函數(shù),如需創(chuàng)建Blob對(duì)象,可以使用 byte[] 類(lèi)型,先把String轉(zhuǎn)成byte[]再調(diào)用構(gòu)造函數(shù)。

創(chuàng)建SerialBlob對(duì)象

String 轉(zhuǎn)換為byte[]

/**
 * String 轉(zhuǎn) byte[]
 * @param str 請(qǐng)求進(jìn)入字符串
 * @return 返回byte[] 數(shù)組
 * @throws Exception 拋出錯(cuò)誤
 */
public byte[] readStream(String str) throws Exception {
    InputStream inStream=new ByteArrayInputStream(str.getBytes(StandardCharsets.UTF_8));
    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    byte[] buffer = new byte[1024];
    int len = 0;
    while ((len = inStream.read(buffer)) != -1) {
        outStream.write(buffer, 0, len);
    }
    outStream.close();
    inStream.close();
    return outStream.toByteArray();
}

byte[] 轉(zhuǎn)為 SerialBlob

Blob blob=new SerialBlob(readStream(str))

Blob轉(zhuǎn)換Sting

同理,Blob類(lèi)型轉(zhuǎn)換為String,就是反過(guò)來(lái),先轉(zhuǎn)換成byte[],再轉(zhuǎn)換成String。

private String blobToString(Blob blob) throws Exception {
     InputStream inStream=blob.getBinaryStream();
     StringBuffer stringBuffer=new StringBuffer();
     try {
         byte[] buffer = new byte[1024];
         int len = 0;
         while ((len = inStream.read(buffer)) != -1) {
             String str=new String(buffer, 0, len);
             stringBuffer.append(str);
         }
     }catch (Exception e){
         throw e;
     }finally {
         if(inStream!=null){
             inStream.close();
         }
         if(stringBuffer.length()>0){
             return stringBuffer.toString();
         }else{
             return null;
         }
     }
 }

File轉(zhuǎn)Blob

可以把File文件先轉(zhuǎn)換成byte[],再通過(guò)SerialBlob對(duì)象創(chuàng)建

File轉(zhuǎn)為byte[]

這個(gè)方法試試示例,可以去網(wǎng)上找一下File轉(zhuǎn)換byte[]流的方法

//這個(gè)方法只是示例,不推薦這樣使用
public static byte[] getFileByte(File file) throws Exception {
	byte[] data = null;
	InputStream in = new FileInputStream(file);
	data = new byte[in.available()];
	in.read(data);
	in.close();
	return data;
}

byte[] 轉(zhuǎn)為 SerialBlob

Blob blob=new SerialBlob(readStream(str))

Blob轉(zhuǎn)File

可以通過(guò)Blob轉(zhuǎn)成InputStream,再通過(guò)讀取的方式轉(zhuǎn)成File

Blob轉(zhuǎn)InputStream

InputStream in = blob.getBinaryStream()

InputStream轉(zhuǎn)File

public void blobToFile(Blob blob,File file) throws Exception {
	InputStream inStream=null;
	OutputStream outStream=null;
   	try {
		outStream = new FileOutputStream(file);
		int bytesRead = 0;
		byte[] buffer = new byte[2048];
		while ((bytesRead = inStream.read(buffer, 0, 2048)) != -1) {
			outStream.write(buffer, 0, bytesRead);
		}
	}catch (Exception e){
   		throw new Exception(e);
	}finally {
   		if(outStream!=null){
			outStream.close();
		}
		if(inStream!=null){
			inStream.close();
		}
	}
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java多線(xiàn)程CountDownLatch的實(shí)現(xiàn)

    Java多線(xiàn)程CountDownLatch的實(shí)現(xiàn)

    本文主要介紹了Java多線(xiàn)程CountDownLatch的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java 實(shí)現(xiàn)模擬用戶(hù)登錄的示例代碼

    Java 實(shí)現(xiàn)模擬用戶(hù)登錄的示例代碼

    這篇文章主要介紹了Java 實(shí)現(xiàn)模擬用戶(hù)登錄的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Java之JFrame輸出Helloworld實(shí)例

    Java之JFrame輸出Helloworld實(shí)例

    這篇文章主要介紹了Java之JFrame輸出Helloworld的方法,以輸出Helloworld的實(shí)例分析了JFrame的簡(jiǎn)單入門(mén)技巧,需要的朋友可以參考下
    2015-02-02
  • JPA原生SQL(自定義SQL)分頁(yè)查詢(xún)邏輯詳解

    JPA原生SQL(自定義SQL)分頁(yè)查詢(xún)邏輯詳解

    這篇文章主要介紹了JPA原生SQL(自定義SQL)分頁(yè)查詢(xún)邏輯詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java中用數(shù)組實(shí)現(xiàn)環(huán)形隊(duì)列的示例代碼

    java中用數(shù)組實(shí)現(xiàn)環(huán)形隊(duì)列的示例代碼

    這篇文章主要介紹了java中用數(shù)組實(shí)現(xiàn)環(huán)形隊(duì)列的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 解決springboot文件配置端口不起作用(默認(rèn)8080)

    解決springboot文件配置端口不起作用(默認(rèn)8080)

    這篇文章主要介紹了解決springboot文件配置端口不起作用(默認(rèn)8080),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 詳解springmvc 中controller與jsp傳值

    詳解springmvc 中controller與jsp傳值

    本篇文章主要介紹了springmvc 中controller與jsp傳值,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • java簡(jiǎn)單讀取properties配置文件的方法示例

    java簡(jiǎn)單讀取properties配置文件的方法示例

    這篇文章主要介紹了java簡(jiǎn)單讀取properties配置文件的方法,涉及java針對(duì)properties配置的載入及文件屬性讀取相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • JVM內(nèi)存結(jié)構(gòu)相關(guān)知識(shí)解析

    JVM內(nèi)存結(jié)構(gòu)相關(guān)知識(shí)解析

    這篇文章主要介紹了JVM內(nèi)存結(jié)構(gòu)相關(guān)知識(shí)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • java使用wait和notify實(shí)現(xiàn)線(xiàn)程通信

    java使用wait和notify實(shí)現(xiàn)線(xiàn)程通信

    這篇文章主要為大家詳細(xì)介紹了java如何使用wait和notify實(shí)現(xiàn)線(xiàn)程之間通信,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10

最新評(píng)論