Java如何将一个二进制字节数组转换为文件呢?
下文笔者讲述使用java代码将字节数组转换为文件的方法分享,如下所示
今天接到一个需求,需将数据库中的image字段种的数据转换为文件存储
那么到底该如何实现这一需求呢?下文笔者将一一道来,如下所示
今天接到一个需求,需将数据库中的image字段种的数据转换为文件存储
那么到底该如何实现这一需求呢?下文笔者将一一道来,如下所示
字节数组转文件
利用流的写入操作 即可实现字节数组转文件例
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class FileUtils { private static Logger logger = LoggerFactory.getLogger(FileUtils.class); /** * @Title: byteToFile * @Description: 把二进制数据转成指定后缀名的文件,例如PDF,PNG等 * @param contents 二进制数据 * @param filePath 文件存放目录,包括文件名及其后缀,如D:\test\test.jpg * @Time: 2018-08-26 08:43:36 */ public static void byteToFile(byte[] contents, String filePath) { BufferedInputStream bis = null; FileOutputStream fos = null; BufferedOutputStream output = null; try { ByteArrayInputStream byteInputStream = new ByteArrayInputStream(contents); bis = new BufferedInputStream(byteInputStream); File file = new File(filePath); // 获取文件的父路径字符串 File path = file.getParentFile(); if (!path.exists()) { logger.info("文件夹不存在,创建。path={}", path); boolean isCreated = path.mkdirs(); if (!isCreated) { logger.error("创建文件夹失败,path={}", path); } } fos = new FileOutputStream(file); // 实例化OutputString 对象 output = new BufferedOutputStream(fos); byte[] buffer = new byte[1024]; int length = bis.read(buffer); while (length != -1) { output.write(buffer, 0, length); length = bis.read(buffer); } output.flush(); } catch (Exception e) { logger.error("输出文件流时抛异常,filePath={}", filePath, e); } finally { try { bis.close(); fos.close(); output.close(); } catch (IOException e0) { logger.error("文件处理失败,filePath={}", filePath, e0); } } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。