springboot 项目中读取资源文件内容 如图片、文档文件-程序员宅基地

技术标签: java  后端  

1 问题描述:在 springboot 项目中有时候会需要读取一些资源文件,例如 office的 docx 文档或者 png、jpg的图片。在多模块项目中资源文件需要放到启动项目的 Resources 文件夹

示例代码如下:

InputStream pngInStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("img.png");
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int n;
        while ((n = pngInStream.read(buffer)) != -1) {
            out.write(buffer,0,n);
        }
        System.out.println(out.toByteArray());

可以将 Resources 目录下的 img.png 图片读取出来,存放到 out 对象中。

在应用中涉及到 io 操作时最好将数据转换成 io 流,提高运算速度,可以到内存中运算。ByteArrayOutputStream, ByteArrayInputStream

不要使用 InputStream.avaiable() 方法,在不同系统中读到的数据可能不一样

转载于:https://www.cnblogs.com/zhaopengcheng/p/10539894.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/diaolong123123/article/details/102453253

智能推荐

18.10.10 实验吧----有一个程序加密得到如下密文_实验吧密文rot13_xiaoyuyulala的博客-程序员宅基地

一个pyc文件,python的反编译,直接在线反编译,当然用uncomple2是最保险的,下载地址:https://github.com/wibiti/uncompyle2代码如下import sysfrom hashlib import md5import base64from time import timefrom datetime import datetimeUC_K..._实验吧密文rot13

微信小程序中如何让swiper禁止手动滑动,只能自动切换_swiper-item中的catchtouchmove_小美好的博客-程序员宅基地

在开发微信小程序过程中需求是禁止swiper手动滑动,只能自动滚动解决方法:在swiper-item中加入catchtouchmove<swiper-item catchtouchmove='catchTouchMove'> //禁止swiper手动滑动的时间catchTouchMove:function(){ return false },如有问题欢迎一起谈论啊~..._swiper-item中的catchtouchmove

机器学习之线性回归 Linear Regression(一)_ivy_reny的博客-程序员宅基地

一、线性回归 线性回归一般用来做连续值的预测,预测结果为一个连续值。因为训练时学习样本不仅要提供学习的特征向量X,还要提供样本的实际结果,所以它是一种有监督学习。 表示数据矩阵,其中表示一个n维长的数据样本,表示数据标记。线性回归需要学习得到一个映射关系,当给定新的待预测样本时,可以通过这个映射关系得到一个测试样本X的预测值y。 线性回归的数学

【监测】判断Linux进程在哪个CPU核运行的方法_shell查看进程跑在哪个core上_bandaoyu的博客-程序员宅基地

原文:https://linux.cn/article-6307-1.html?pr问题:有一个Linux进程运行在多核处理器系统上,如何查看该进程运行在哪个CPU上?方法一:如果一个进程使用taskset命令明确的被固定(Pinned)到CPU的特定内核上,你可以使用taskset命令找出被固定的CPU内核:taskset -c -p <pid>例如,如果你对P..._shell查看进程跑在哪个core上

liunx,centos7 下安装部署 Jenkins 持续集成工具,war包方式安装Jenkins_centos更换jenkins war包_靓坤上海分坤的博客-程序员宅基地

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。下载地址:https://bitnami.com/stack/jenkins/installer 这里采用最简便 war 包直接启动,需要提前安装配置 jdk 和 maven ,war下载地址点击即可下载。下载之后,我们切..._centos更换jenkins war包

TortoiseGit日常使用指南_weixin_30597269的博客-程序员宅基地

本文在介绍了软件安装和设置后, 写了TortoiseGit 常用的一些功能, 包括: 创建新库 添加文件及文件夹 创建分支 看分支情况及修改log 比较版本差异 合并分支 其他操作: Stash; 忽略文件本文不包括: Git 服务器设置 Push 版本到服务器上 从其他机器上Pull 版本 解决中文字符问题《Pro Git》和TortoiseGit 的帮助文档是两篇很不错的参考文档. 如果时间比..._tortoisegit 添加文件夹

随便推点

博客九_blog..@9-程序员宅基地

JavaBeanJavaBean概述JavaBean是用Java开发的可以跨平台的可重用组件,在Web程序中常用来封装业务逻辑和进行数据库操作。在程序开发中,程序员所要处理的无非是业务逻辑和数据,而这两种操作都要用到JavaBean,因此JavaBean很重要。JavaBean实际上就是一个Java类,这个类可以重用,javaBean从功能上说可以分为以下两类1. 封装数据2. 封装业..._blog..@9

2.2 Arduino各类模块-3(NRF24L01 2.4G无线模块单向双向传输)_arduino2.4g模块怎么用_m0_59889595的博客-程序员宅基地

6、2.4G无线模块(NRF24L01)说明:使用1.9-3.6v供电,典型供电3.3v NRF24L012.4G无线模块我们分为两个部分,使用两个不同的库进行实现。NRF24L01硬件上具有六个管道,每一个终端可以占据一个管道,因此NRF24L01可以实现一对五的双向传输或者一对无限个的单向传输,此时接收端为静默监听状态。1.初学版我使用Mirf库进行实现在使用Mirf库进行一对一单向或双向传输时,是更为便捷的,开发的速度也会更快,建议初学者使用接线方式:._arduino2.4g模块怎么用

JAVA程序员必看的15本书-JAVA自学书籍推荐_java小白入门书籍_小白花儿的博客-程序员宅基地

&amp;nbsp;&amp;nbsp;&amp;nbsp; 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。此外,大家可以加入457036818交流群,互相分享一下关于JAVA方面的知识。一、Java编程入门类  对于没有Java编程经验..._java小白入门书籍

怎么制作表情DIY,动态GIF表情包如何制作?_qq表情diy不能添加 gif_夏末嘞的博客-程序员宅基地

表情是生活中必不可少的一个交流方式,不仅能够表达心情,很多时候还可以以幽默的方式来缓解对话的尴尬氛围。QQ中就推出表情了DIY功能,可以将多个表情图片制作成一个动态GIF,那怎么制作表情DIY,动态GIF表情包如何制作呢?怎么制作表情DIY?1、在电脑上登录QQ账号,打开任意一个对话框,然后点击QQ表情图标;2、然后可以在右上角看到“表情DIY”,点击即可进入到DIY制作页面;..._qq表情diy不能添加 gif

推荐文章

热门文章

相关标签