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

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

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

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

String轉(zhuǎn)換Blob

可以通過SerialBlob創(chuàng)建Blob對(duì)象,SerialBlob下有兩個(gè)構(gòu)造函數(shù),如需創(chuàng)建Blob對(duì)象,可以使用 byte[] 類型,先把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類型轉(zhuǎn)換為String,就是反過來,先轉(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[],再通過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

可以通過Blob轉(zhuǎn)成InputStream,再通過讀取的方式轉(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)文章

  • 分布式任務(wù)調(diào)度xxl-job問題解決

    分布式任務(wù)調(diào)度xxl-job問題解決

    這篇文章主要為大家介紹了分布式任務(wù)調(diào)度xxl-job的問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多多多進(jìn)步,早日升職加薪
    2022-03-03
  • Java虛擬機(jī)底層原理詳細(xì)分析

    Java虛擬機(jī)底層原理詳細(xì)分析

    這篇文章主要介紹了Java虛擬機(jī)底層原理詳細(xì)分析,運(yùn)行時(shí)數(shù)據(jù)區(qū)就是俗稱的虛擬機(jī)內(nèi)存,主要包括我們熟悉的堆、棧、本地方法棧、方法區(qū)(元空間)、程序計(jì)數(shù)器,虛擬機(jī)調(diào)優(yōu)主要針對(duì)的是運(yùn)行時(shí)數(shù)據(jù)區(qū),也就是虛擬機(jī)內(nèi)存,需要的朋友可以參考下
    2024-01-01
  • springboot之security?FilterSecurityInterceptor的使用要點(diǎn)記錄

    springboot之security?FilterSecurityInterceptor的使用要點(diǎn)記錄

    這篇文章主要介紹了springboot之security?FilterSecurityInterceptor的使用要點(diǎn)記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java實(shí)現(xiàn)簡單日期計(jì)算功能

    java實(shí)現(xiàn)簡單日期計(jì)算功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡單日期計(jì)算功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • MyBatisPlus中事務(wù)處理的實(shí)現(xiàn)

    MyBatisPlus中事務(wù)處理的實(shí)現(xiàn)

    本文主要介紹了MyBatisPlus中事務(wù)處理的實(shí)現(xiàn),包括事務(wù)的開啟、提交、回滾等操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Java中使用JavaScript腳本的方法步驟

    Java中使用JavaScript腳本的方法步驟

    這篇文章主要介紹了Java中使用JavaScript腳本的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Java集合的組內(nèi)平均值的計(jì)算方法總結(jié)

    Java集合的組內(nèi)平均值的計(jì)算方法總結(jié)

    在Java中,經(jīng)常需要對(duì)集合進(jìn)行各種操作,其中之一就是計(jì)算集合的組內(nèi)平均值,本文將介紹如何使用Java集合來計(jì)算組內(nèi)平均值,并提供一些示例代碼和實(shí)用技巧
    2024-08-08
  • java常用工具類 UUID、Map工具類

    java常用工具類 UUID、Map工具類

    這篇文章主要為大家詳細(xì)介紹了Java常用工具類,包括UUID工具類、Map工具類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • SpringBoot自定義Starter的教程指南

    SpringBoot自定義Starter的教程指南

    SpringBoot的Starter自動(dòng)配置機(jī)制極大地簡化了依賴管理和應(yīng)用配置,使得開發(fā)者可以以最少的配置快速啟動(dòng)和運(yùn)行Spring應(yīng)用,有時(shí),標(biāo)準(zhǔn)的Starter可能無法滿足特定需求,需要?jiǎng)?chuàng)建自定義Starter,所以本文給大家介紹了SpringBoot自定義Starter的教程指南
    2024-11-11
  • Java實(shí)現(xiàn)Word、Excel、PDF文件在線預(yù)覽幾種實(shí)現(xiàn)方式

    Java實(shí)現(xiàn)Word、Excel、PDF文件在線預(yù)覽幾種實(shí)現(xiàn)方式

    在Web開發(fā)中,經(jīng)常需要實(shí)現(xiàn)文件的在線預(yù)覽功能,比如預(yù)覽PDF、Word、Excel等文檔格式,這篇文章主要介紹了Java實(shí)現(xiàn)Word、Excel、PDF文件在線預(yù)覽幾種實(shí)現(xiàn)方式的相關(guān)資料,需要的朋友可以參考下
    2025-12-12

最新評(píng)論

介休市| 达日县| 屏边| 通辽市| 海原县| 长乐市| 大同市| 贡觉县| 自治县| 从江县| 大庆市| 壶关县| 遵义县| 锦州市| 日土县| 娱乐| 梨树县| 乌恰县| 沁源县| 榆树市| 德阳市| 灵石县| 昌平区| 商洛市| 静安区| 长宁县| 乌苏市| 莱芜市| 吉林省| 屏东县| 仁怀市| 睢宁县| 上虞市| 河西区| 陇川县| 吉隆县| 宿迁市| 交城县| 苍山县| 叙永县| 玉龙|