java 代码里读取jar包下resources目录下的文件
liuian 2025-01-07 14:14 27 浏览
简述
java项目里,我们时常需要读取一些自定义的文件,我们一般也会把这些文件放在resources目录下,但有时候,我们在idea开发时明明是可以读取到文件的,一打包放到Linux或者Tomcat上运行就会报错,说找不到指定的文件。下面我们就来实践一下常用的几个读取文件的方式。
(阅读本文大概耗时1分钟)
实践
先列举将要实践的几个方式:
- java.io.File
- java.lang.ClassLoader#getSystemResourceAsStream
- class.getClassLoader().getResourceAsStream
- org.springframework.core.io.FileSystemResource
- org.springframework.core.io.FileSystemResourceLoader
先实践这几种,有jdk有spring的,下面看图说话:
1、java.io.File
idea下都读取不到,我们就不试jar包了。(下同)
2、java.lang.ClassLoader#getSystemResourceAsStream
3、class.getClassLoader().getResourceAsStream
4、org.springframework.core.io.FileSystemResource
5、org.springframework.core.io.FileSystemResourceLoader
综上,第3,第5种方式都行;为操作方便,我建议统一使用第3种方式:
当前类名.class.getClassLoader().getResourceAsStream("text.txt")
OK,各位道友若还能想出其他方式,敬请留言。
相关推荐
- MySQL 5.7 新特性大全和未来展望
-
本文转自微信公众号:高可用架构作者:杨尚刚引用美图公司数据库高级DBA,负责美图后端数据存储平台建设和架构设计。前新浪高级数据库工程师,负责新浪微博核心数据库架构改造优化,以及数据库相关的服务器存...
- MySQL系列-源码编译安装(v8.0.25)
-
一、前言生产环境建议使用二进制安装法,其优点是部署简单、快速、方便,并且相对"yum/rpm安装"方法能更方便地自定义文件存放的目录结构,方便用脚本批量部署,方便日后运维管理。在生产...
- MySQL如何实时同步数据到ES?试试这款阿里开源的神器!
-
前几天在网上冲浪的时候发现了一个比较成熟的开源中间件——Canal。在了解了它的工作原理和使用场景后,顿时产生了浓厚的兴趣。今天,就让我们跟随我的脚步,一起来揭开它神秘的面纱吧。简介canal翻译为...
- 技术老兵十年专攻MySQL:编写了763页核心总结,90%MySQL问题全解
-
MySQL是开放源码的关系数据库管理系统,由于性能高、成本低、可靠性好,成为现在最流行的开源数据库。MySQL学习指南笔记领取方式:关注、转发后私信小编【111】即可免费获得《MySQL进阶笔记》的...
- Mysql和Hive之间通过Sqoop进行数据同步
-
文章回顾理论大数据框架原理简介大数据发展历程及技术选型实践搭建大数据运行环境之一搭建大数据运行环境之二本地MAC环境配置CPU数和内存大小查看CPU数sysctl machdep.cpu...
- Xtrabackup备份恢复数据库
-
使用Xtrabackup备份恢复Mysql数据库一、环境操作系统:CentOSLinux7数据库:mysqlVer8.0.29forLinuxonx86_64说明:PerconaXt...
- 在Ubuntu 16.04 LTS服务器上安装FreeRADIUS和Daloradius的方法
-
FreeRADIUS为AAARadiusLinux下开源解决方案,DaloRadius为图形化web管理工具。freeradius一般用来进行账户认证管理,记账管理,常见的电信运营商的宽带账户,...
- MySql:关系型数据库中的视图(Views)可以更新吗?
-
在MySQL和许多其他关系型数据库中,视图(Views)是可以更新(即,通过视图进行INSERT、UPDATE、DELETE操作)的,但这有一些限制和前提条件。下面是一些可更新视图的例子和相应的规则:...
- MySQL 9.3 引入增强的JavaScript支持
-
MySQL,这一广泛采用的开源关系型数据库管理系统(RDBMS),发布了其9.x系列的第三个更新版本——9.3版,带来了多项新功能。核心改进亮点:1.备份能力升级新增--users选项:管...
- Linux的常用命令就是记不住,怎么办?
-
1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...
- 去哪儿技术面:10亿数据如何最快速插入MySQL?
-
数据库单表能支持10亿吗?如何高效的写入数据库是否需要并发写同一个表MySQL存储引擎的选择要不要进行分库如何保证写入数据库有序如何更快地读取文件如果协调读文件任务和写数据库任务如何保证任务的可靠性如...
- 【每日一学】避免陷阱:MySQL安装六雷区揭秘,助你顺利搭建环境
-
学习总目标本次学习目标安装问题1:无法打开MySQL8.0软件安装包?在运行MySQL8.0软件安装包之前,用户需要确保系统中已经安装了.NetFramework相关软件,如果缺少此软件,将不能正...
- Mysql-服务端-扩展配置
-
Mysql-服务端-扩展配置扩展配置max_connections允许最大连接数,默认100,最大16384。这个根据性能调节,如果3000连接就会导致mysql的资源不够,那就给3000.因为再给多...
- 阿里云代理商:阿里云云数据库 RDS 与 MySQL 的优缺点对比
-
在现代企业应用中,数据库扮演着至关重要的角色。随着云计算的普及,许多企业开始选择基于云的数据库服务,其中阿里云的云数据库RDS(RelationalDatabaseService)与传统的MyS...
- MySQL设置数据库为只读
-
前言:默认情况下,我们的MySQL实例是可读写的。但有些情况下,我们可以将整个实例设置为只读状态,比如做迁移维护的时候或者将从库设为只读。本篇文章我们来看下MySQL设置只读相关知识。1.关于...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
系统C盘清理:微信PC端文件清理,扩大C盘可用空间步骤
-
飞牛OS入门安装遇到问题,如何解决?
-
10款高性能NAS丨双十一必看,轻松搞定虚拟机、Docker、软路由
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)