Spring boot 读取resource目录下的文件
背景:最近做项目重构将以前的ssh + angular js架构,重构为spring boot + vue。项目是一个数据管理平台,后台涉及到多表关联查询,数据导入导出等。
问题:读取resource 目录下文件时出现路径找不到。
原因:spring boot 将项目打包为jar,使用 java - jar 包名 在服务器上运行。此时文件为打包文件,所以不能通过路径获取到文件。类似不能读取压缩包中的文件,必须先解压缩。结论:spring boot 中的文件只能通过流来进行读取。
可以通过以下方法进行流的读取。
InputStream in = this.getClass().getResourceAsStream("/files/aa.xls");
注: this.getClass().getResourceAsStream("");指向的路径问Resource跟目录,可以根据目录路径来写自己的文件路径。
注:如果文件路径或者文件名中存在中文,路径也会访问不到。所以文件路径和文件尽量使用英文。可以在输出文件的时候,修改文件名为中文。
返回给前端流,来下载文件,以excel文件为例。
String name = "呵呵.xls"
response.setContextType("application/vnd.ms-excel");
response.setHeader("Content-dispositon","inline;filename=" + new String(name.getBytes("GBK"),"ISO8859_1"));
进行下载。
Spring boot 读取resource目录下的文件的更多相关文章
- java读取resource目录下的配置文件
java读取resource目录下的配置文件 1:配置resource目录 下的文件 host: 127.0.0.1 port: 9300 2:读取 / 代表resource目录 InputSt ...
- iOS案例:读取指定目录下的文件列表
// // main.m // 读取指定目录下的文件列表 // // Created by Apple on 15/11/24. // Copyright © 2015年 Apple. All rig ...
- Python 读取某个目录下的文件
读取某个目录下的文件,如'/Users/test/test_kmls'目录下有test1.txt.test2.txt. 第一种方法读出的all_files是test1.txt.test2.txt im ...
- SpringBoot读取资源目录下的文件
需要读取resources目录下的文件,那么方法如下: 假设在资源目录下的template目录下有一个文件a.txt,获取到文件流的方式 InputStream stream = this.getCl ...
- IDEA中读取 resource目录下文件
1. 资源文件 2. 加载文件 public void test() { try { System.out.println("begin test"); String filepa ...
- java 读取固定目录下的文件(和上篇差点儿相同)
package gao.org; import java.io.FileNotFoundException; import java.io.IOException; import java.io.Fi ...
- [Java] 在 jar 文件中读取 resources 目录下的文件
注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 ...
- 读取spring boot项目中resource目录下的文件
在开发中, 我们常常要将我们的配置文件或者模板文件放在我们的resource目录中. 如下 而在spring boot的项目中, 我们运行的是一个jar包, 并没有解压 所以当我们使用以下方式获取文件 ...
- 发布jar包到服务器读取resource目录下文件
* 解决:当项目打包成jar之后resources路径下面的证书文件访问不到* 思路:* 1.运行时先复制一个jar* 2.将复制的jar解压到jar文件目录* 3.删除复制的jar跟解压的非证书文件 ...
随机推荐
- 解决VS2015 不能设置下面的断点**** 断点未能绑定
解决VS2015 不能设置下面的断点**** 断点未能绑定 1. 清理解决方案 , 重新生成解决方案 , 无效!! 2. 选项-- 调试 -- 启用编辑并继续 无效!! 3. 启 ...
- kali安装dnsdict6
https://src.fedoraproject.org/lookaside/pkgs/thc-ipv6/thc-ipv6-2.7.tar.gz/2975dd54be35b68c140eb2a6b8 ...
- MySQL学习笔记:count(1)、count(*)、count(字段)的区别
关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT. 但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会被虐.不信的话请 ...
- clientHeight和offsetHeight
clientHeight:包括padding但不包括border.水平滚动条.margin的元素的高度.对于inline的元素这个属性一直是0,单位px,只读元素. offsetHeight:包括pa ...
- mac 下开发golang 配置
1.安装golang 见附件 2.默认安装在 /usr/local/go 目录下 3.配置环境变量: 编辑文件:vim /etc/profile,有的MAC 下没有这个文件,可以新建. 加入环境变量 ...
- Python实现读取Excel文档中的配置并下载软件包
问题:现在遇到这样一个问题,服务器存储了很多软件包,这些包输入不同的产品,每个产品都有自己的配置,互相交叉,那么到底某一产品所有配置的软件包下载后,占用多大空间呢? 分析:从这个问题入手,了解到:软件 ...
- Scrapy框架之Spider模板 转
一.安装scrapy 首先安装依赖库Twisted pip install (依赖库的路径) 在这个网址http://www.lfd.uci.edu/~gohlke/pythonlibs#twiste ...
- vue项目中关于微信分享的坑,以及安卓和ios获取location.href不同的处理
最近做vue项目的微信公众号项目,涉及到微信分享,记录一下心得,以备后用,vue路由用的是hash模式: 该项目只是公众号里面的h5链接,不需要获取code获取access_token的票据,因此前端 ...
- python基础编程: 函数示例、装饰器、模块、内置函数
目录: 函数示例 装饰器 模块 内置函数 一.函数示例: 1.为什么使用函数之模块化程序设计: 不使用模块程序设计的缺点: 1.体系结构不清晰,可主读性差: 2.可扩展性差: 3.程序冗长: 2.定义 ...
- Cmd有关IP的部分命令
ping命令判断系统数据包在传送的时候至少会经过一个以上的路由器,当数据包经过一个路由器的时候,TTL就会自动减1,如果减到0了还是没有传送到目的主机,那么这个数据包就会自动丢失,这时路由器会发送一个 ...