百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

java 代码里读取jar包下resources目录下的文件

liuian 2025-01-07 14:14 27 浏览

简述

java项目里,我们时常需要读取一些自定义的文件,我们一般也会把这些文件放在resources目录下,但有时候,我们在idea开发时明明是可以读取到文件的,一打包放到Linux或者Tomcat上运行就会报错,说找不到指定的文件。下面我们就来实践一下常用的几个读取文件的方式。

(阅读本文大概耗时1分钟)

实践

先列举将要实践的几个方式:

  1. java.io.File
  2. java.lang.ClassLoader#getSystemResourceAsStream
  3. class.getClassLoader().getResourceAsStream
  4. org.springframework.core.io.FileSystemResource
  5. 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.关于...