java加载配置文件
转载自http://blog.163.com/wb_zhaoyuwei/blog/static/183075439201261764454791/
当我们自己的程序需要处理配置文件时(比如xml文件或properties文件),通常会遇到两个问题:
(1)我的配置文件应该放在哪里?
(2)怎么我的配置文件找不到了?
对于第一个问题,答案是:请将你的资源文件放在classpath里,如果资源文件在jar中,请将该jar文件也加到classpath里面。
对于第二个问题,就得看你是使用的是哪个类(Class还是ClassLoader)来加载资源文件了,所以接下来分别讨论一下Class类和ClassLoader类对于资源文件的加载机制。
(一)用Class类加载资源文件
通过调用Class类的getResourceAsStream方法来加载资源文件:
通常用得较多的是JdbcUtil.class.getResourcrAsStream("/database.properties");
public InputStream getResourceAsStream(String pathToConfigFile);
该方法接收一个String类型的参数(pathToConfigFile)来表示资源文件的地址,如果加载成功,则返回该资源文件的输入流(InputStream),如果失败,则返回null。
重要的是,在传入pathToConfigFile参数时,有两种方式,
第一种方式为绝对定位方式,即pathToConfigFile以"/"开头,此时Java以classpath为根目录,直接加上pathToConfigFile来搜索资源文件。
第二种方式为相对定位方式,即pathToConfigFile不以"/"开头,此时资源文件的全路径应该为:调用getResourceAsStream方法的类的package路径加上pathToConfigFile。(在将package转为目录时将"."变成"/")
(二)用ClassLoader类加载资源文件
ClassLoader类也提供和Class类相同的加载方法:
public InputStream getResourceAsStream(String pathToConfigFile);
用ClassLoader加载配置文件时,pathToConfigFile均不能以"/"开头,在查找时直接在classpath下进行查找。Class类在查找资源文件时,也是代理(delegate)给ClassLoader完成查找功能的,请参考Java官方文档。
InputStream input = this.getClass().getClassLoader().getResourceAsStream("resources/config.properties");
InputStream input = ClassLoader.getSystemResourceAsStream("resources/config.properties");
InputStream input = ClassLoader.getSystemClassLoader().getResourceAsStream("resources/config.properties");
转载于:https://www.cnblogs.com/shaoshanhuo/p/5117412.html
java加载配置文件相关推荐
- java加载配置文件_Java 读取配置文件的五种方式
方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来. 因为是用ServletContext读取文件路径,所以配置文件可以放入在WEB-INF的clas ...
- java加载配置文件_java 读取和修改配置文件
1.读取配置文件 try{ File f=new File("D:\\myfile.text"); Properties pp=new Properties(); FileInpu ...
- java动态加载配置文件
最近项目中需要做定时任务,即定时数据库的备份.定时时间用户可以在界面中配置,要求配置修改好立即生效. 想不到什么好办法.下面是一种实现思路 把用户配置的时间存到properties配置文件中,定时任务 ...
- java配置文件工具类,java项目加载配置文件的工具类
java项目加载配置文件的工具类 package com.loadproperties; import java.io.IOException; import java.io.InputStream; ...
- Java中加载配置文件方式的总结
当需要在Java中加载配置文件的时候,有几个选项提供选择: · File · Class.getResourceAsStream · Class.getCla ...
- JDBC——jdbcUtils加载配置文件赋值
加载配置文件:Properties对象 对应properties文件处理,开发中也使用Properties(唯一与流有关系的集合(是map),可以读取对象变为集合中Key/Value格式)对象进行.我 ...
- 【Nutch2.2.1源代码分析之4】Nutch加载配置文件的方法
小结: (1)在nutch中,一般通过ToolRunner来运行hadoop job,此方法可以方便的通过ToolRunner.run(Configuration conf,Tool tool,Str ...
- spring加载配置文件
在项目中有些参数经常需要修改,或者后期可能会有改动时,那我们最好把这些参数放到properties文件中,在源代码中读取properties里面的配置,这样后期只需要改动properties文件即可, ...
- spring-自动加载配置文件\使用属性文件注入
在上一篇jsf环境搭建的基础上 , 加入spring框架 , 先看下目录结构 src/main/resources 这个source folder 放置web项目所需的主要配置,打包时,会自动打包到W ...
最新文章
- 【问题收录】Ubuntu Starting LightDM Display Manager fail
- java源文件到字节码的命令,Java的源代码文件的扩展名是 ,Java源文件通过编译命令编译成的字节码文件(平台无关)的扩展名是 。...
- 5.3.2 TCP连接管理
- 我应该避免在Java Swing中使用set(Preferred | Maximum | Minimum)Size方法吗?
- flutter加载本地html标签,Flutter中如何加载并预览本地的html文件的方法
- unity的自带特性
- combobox DataGridView
- 推荐php 8新特性比较好的两个网站
- 干货|一文读懂阿里云数据库Autoscaling是如何工作的
- oracle 11g 存储结构和数据文件
- 第五:Python发送邮件时获取最新测试报告并发送邮件
- 计算机基础ppt_「考前秘笈」2020年3月份计算机二级MS-office考试重点
- uploadify php 重命名,自定义uploadify服务器端上传脚本
- Pyside2中嵌入Matplotlib的绘图并保存(指定Graphics View)
- 上海企业英语培训机构排名
- 通过代理下载Google Code
- 最小和最大优先循环队列(C++)
- 影响力在职场的重要性
- 变形金刚2 昨日上映 汽车人提前降临地球
- html去除图片链接边框及其链接虚线
热门文章
- 一个关于先验概率、似然函数与后验概率计算的小例子
- excel利用countif/match/lookup函数对比分析数据
- keyvaluepair_KeyValuePair用法(转)
- CSU 1203 Super-increasing sequence
- git - 基础 - 01 - git reset --hard 回滚以后,看不到之前的分支版本怎么解决:
- linux mpeg4ip 编译,CentOS6.2下编译mpeg4ip
- html ios导航栏下拉菜单,Flutter -- iOS导航栏TabBar
- java 全排列 可重复_java 用递归方法求n个数的无重复全排列
- 小米bl未解锁变砖了如何刷机_如何安装MIUI 10
- html瀑布流下拉刷新,瀑布流下拉刷新 - osc_1wnye1so的个人空间 - OSCHINA - 中文开源技术交流社区...