浅谈Java工程读取resources中资源文件路径的问题

 更新时间:2017年07月28日 08:04:24   投稿:jingxian  
下面小编就为大家带来一篇浅谈Java工程读取resources中资源文件路径的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径。在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例。

本地读取资源文件

java类中需要读取properties中的配置文件,可以采用文件(File)方式进行读取:

File file = new File("src/main/resources/properties/basecom.properties");
InputStream in = new FileInputStream(file);

当在eclipse中运行(不部署到服务器上),可以读取到文件。

服务器(Tomcat)读取资源文件

当工程部署到Tomcat中时,按照上边方式,则会出现找不到该文件路径的异常。经搜索资料知道,Java工程打包部署到Tomcat中时,properties的路径变到顶层(classes下):

并且,此时读取文件需要采用流(stream)的方式读取,如下:

InputStream in = this.getClass().getResourceAsStream("/properties/basecom.properties");

其中properties前的斜杠,相对于调用类,共同的顶层路径。

以上这篇浅谈Java工程读取resources中资源文件路径的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java使用监听器实现一个统计网站在线人数的示例

    java使用监听器实现一个统计网站在线人数的示例

    本文主要介绍了java使用监听器实现一个统计网站在线人数的示例,具有一定的参考价值,有需要的朋友可以了解一下。
    2016-10-10
  • 浅谈Spring中@NotEmpty、@NotBlank、@NotNull区别

    浅谈Spring中@NotEmpty、@NotBlank、@NotNull区别

    本文主要介绍了浅谈Spring中@NotEmpty、@NotBlank、@NotNull区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Java数组的定义与使用

    Java数组的定义与使用

    数组是有序的元素序列,若将有限个类型相同的变量的集合命名,那么这个名称为数组名。本文通过代码示例详细介绍了Java数组的定义和使用,对学习或工作有一定的帮助,需要的小伙伴欢迎阅读
    2023-04-04
  • springboot config 拦截器使用方法实例详解

    springboot config 拦截器使用方法实例详解

    本文介绍Spring-Boot中使用拦截器的相关知识,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-05-05
  • jdk线程池的实现

    jdk线程池的实现

    本文主要介绍了jdk线程池的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java语法基础之for语句练习

    Java语法基础之for语句练习

    以下是对Java语法基础中的for语句进行了详细介绍,需要的朋友可以过来参考下
    2013-07-07
  • Java 实现浏览器下载文件及文件预览

    Java 实现浏览器下载文件及文件预览

    这篇文章主要介绍了Java 实现浏览器下载文件及文件预览,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • IntelliJ IDEA 部署 Web 项目,看这一篇够了!

    IntelliJ IDEA 部署 Web 项目,看这一篇够了!

    这篇文章主要介绍了IntelliJ IDEA 部署 Web 项目的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Java线程池复用线程的秘密你知道吗

    Java线程池复用线程的秘密你知道吗

    这篇文章主要为大家详细介绍了Java线程池复用线程的秘密,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望您能够多多关注

    2022-03-03
  • SpringCloud微服务开发基于RocketMQ实现分布式事务管理详解

    SpringCloud微服务开发基于RocketMQ实现分布式事务管理详解

    分布式事务是在微服务开发中经常会遇到的一个问题,之前的文章中我们已经实现了利用Seata来实现强一致性事务,其实还有一种广为人知的方案就是利用消息队列来实现分布式事务,保证数据的最终一致性,也就是我们常说的柔性事务
    2022-09-09

最新评论