相关文章推荐
魁梧的铅笔  ·  在Tableau中, ...·  7 月前    · 
魁梧的铅笔  ·  Brosse aspirateur ...·  9 月前    · 
魁梧的铅笔  ·  SpringBoot ...·  10 月前    · 
魁梧的铅笔  ·  C# ...·  11 月前    · 
魁梧的铅笔  ·  OpenShot 视频编辑器 | ...·  1 年前    · 
不羁的面包  ·  mac安装lxml-西瓜视频·  8 分钟前    · 
有腹肌的烈酒  ·  MAC ...·  8 分钟前    · 
无聊的豆浆  ·  独家!万顺叫车赴美上市·  8 分钟前    · 
腼腆的炒粉  ·  Supervised Learning ...·  1小时前    · 
首页 > 软件编程 > java > String与Blob互转和file文件与Blob互转

String与Blob互转和file文件与Blob互转方式

作者:腻&爱

这篇文章主要介绍了String与Blob互转和file文件与Blob互转方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Blob对字符串类型操作

String转换Blob

可以通过SerialBlob创建Blob对象,SerialBlob下有两个构造函数,如需创建Blob对象,可以使用 byte[] 类型,先把String转成byte[]再调用构造函数。

String 转换为byte[]

* String 转 byte[] * @param str 请求进入字符串 * @return 返回byte[] 数组 * @throws Exception 抛出错误 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[] 转为 SerialBlob

Blob blob=new SerialBlob(readStream(str))

Blob转换Sting

同理,Blob类型转换为String,就是反过来,先转换成byte[],再转换成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转Blob

可以把File文件先转换成byte[],再通过SerialBlob对象创建

File转为byte[]

这个方法试试示例,可以去网上找一下File转换byte[]流的方法

//这个方法只是示例,不推荐这样使用
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[] 转为 SerialBlob

Blob blob=new SerialBlob(readStream(str))

Blob转File

可以通过Blob转成InputStream,再通过读取的方式转成File

Blob转InputStream

InputStream in = blob.getBinaryStream()

InputStream转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();

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • 全面解读Java NIO(看这篇就够了)
    全面解读Java NIO(看这篇就够了)
    2023-05-05
  • 深入探究Java中的HashMap为什么会产生死循环
    深入探究Java中的HashMap为什么会产生死循环
    2023-05-05
  • 使用Java实现文件夹的遍历操作指南
    使用Java实现文件夹的遍历操作指南
    2023-05-05
  • SpringBoot调整ApplicationContextAware如何实现类加载顺序
    SpringBoot调整ApplicationContextAware如何实现类加载顺序
    2023-05-05
  • String与Blob互转和file文件与Blob互转方式
    String与Blob互转和file文件与Blob互转方式
    2023-05-05
  • Java中Function的使用及说明
    Java中Function的使用及说明
    2023-05-05
  • SpringBoot中加密模块的使用
    SpringBoot中加密模块的使用
    2023-05-05
  • Spring Boot缓存实战之Redis 设置有效时间和自动刷新缓存功能(时间支持在配置文件中配置)
    Spring Boot缓存实战之Redis 设置有效时间和自动刷新缓存功
    2023-05-05
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号

     
    推荐文章