当前位置: 首页 > news >正文

根据文件路径获取base64照片

在项目终于到本地存储的照片文件,并且该服务器上没有网络的情况,就需要根据嫌贵路径获取到照片,并转换成base64编码使用

Java提供了丰富的 I/O 类库,可以轻松读取文件内容。
常用的类:

  • FileInputStream:用于读取文件的二进制数据
  • BufferedInputStream:对输入流进行缓冲,提升读取效率
  • Files 类:Java NIO 提供的工具类,可以一次性读取整个文件为字节数组(适用于文件较小的情况)

从 Java 8 开始,Java 内置了 Base64 编码与解码的支持,位于 java.util.Base64 包中。
常用方法:

  • Base64.getEncoder().encodeToString(byte[] src):将字节数组转换为 Base64 编码的字符串
  • Base64.getDecoder().decode(String src):将 Base64 字符串解码为原始的字节数组

代码示例

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Base64;/*** ImageToBase64 类实现了将图片文件转换为 Base64 编码字符串的功能。* 该程序通过读取图片文件的二进制数据,再利用 Java 内置 Base64 编码器进行编码,* 最终生成可嵌入到 HTML、JSON 或其他数据传输格式中的 Base64 字符串。*/
public class Base64Util {/*** 根据本地照片路径获取base64照片* @param imagePath 图片路径* @return base64图片*/public static String image2Base64(String imagePath) {// 定义字节数组,用于存储图片数据byte[] imageBytes = null;try {File file = new File(imagePath);//使用 FileInputStream 读取文件FileInputStream imageInFile = new FileInputStream(file);imageData[] = new byte[(int) new File(imagePath).length()];imageInFile.read(imageData);// 使用Base64编码图片数据String encodedImage = Base64.encodeBase64String(imageData);System.out.println(encodedImage);imageInFile.close();return encodedImage;} catch (IOException e) {e.printStackTrace();}return "";}/*** 将指定路径的图片转换为 Base64 编码* @param imagePath 图片文件路径(/home/files/2025-04-01/a2dbdd2836c245bd80c00aceb562b232.jepg)* @return base64图片*/public static String image2Base641(String imagePath) {// 定义字节数组,用于存储图片数据byte[] imageBytes = null;try {// 使用 Files.readAllBytes() 读取文件内容File file = new File(imagePath);imageBytes = Files.readAllBytes(file.toPath());} catch (IOException e) {// 输出错误信息,并返回 nulle.printStackTrace();return null;}// 利用 Base64 编码器将图片数据转换为字符串String base64String = Base64.getEncoder().encodeToString(imageBytes);return base64String;}
}
http://www.xdnf.cn/news/366859.html

相关文章:

  • 具身智能数据集解析
  • LVGL的核心:lv_timer_handler
  • 【AI入门】CherryStudio入门7:引入魔搭中的MCP服务
  • WDG看门狗(独立看门狗和窗口看门狗)
  • Babylon.js学习之路《二、开发环境搭建与第一个Hello World》
  • Windows11开机后黑屏,且任务管理器点击无反应
  • JGL051厌氧反应加膜生物反应实验装置
  • 数据结构5.0
  • YOLO数据集标注工具LabelImg(打包Exe版本及使用)
  • 请求从发送到页面渲染的全过程
  • 体育数据库:搭建体育应用的核心「数据引擎」
  • PHP:互联网时代的经典编程语言魅力与未来展望
  • 关于大数据的基础知识(一)——定义特征结构要素
  • 人工智能顶会ICLR 2025论文分享│PointOBB-v2:更简单、更快、更强的单点监督有向目标检测
  • 红黑树算法笔记(一)
  • 聚焦边缘 AI 推理,Akamai 发布最新云与 AI 战略
  • 火山引擎火山云主推产品
  • 两根485线支持多少通信协议
  • C++Primerplus编程练习 第六章
  • 操作系统 == 内存管理
  • postgresql 参数wal_level
  • 【计算机网络-数据链路层】以太网、MAC地址、MTU与ARP协议
  • 7:点云处理—眼在手外标定
  • Grafana v10.1.5 升级至最新v12.0.0
  • 18.模方ModelFun设置教程
  • CSdiy java 07
  • GET请求如何传复杂数组参数
  • uniapp 和 webview 之间的通信
  • 上班摸鱼远程打游戏,哪款远控软件好用点?
  • 服务逃生(隐藏)-困难-其他,排序