关于java读取properties文件的路径问题
来源:互联网 发布:域名泛解析怎么做 编辑:程序博客网 时间:2024/06/04 18:58
- J2SE
- 转: http://longdechuanren.iteye.com/blog/1786419
java
当前实验工程的目录如上图所示,如果我们要读取的properties文件是放到classpath目录下(即放到src目录下,eclipse会将其自动编译到bin\目录下)这个是比较容易的看下面的代码:
- package org.guo.leaning.path;
- import java.io.File;
- import java.io.FileInputStream;
- import java.util.Properties;
- public class ReadFile {
- public static void main(String[] args) throws Exception {
- System.err.println(ReadFile.class.getResource(""));
- System.err.println(ReadFile.class.getResource("/"));
- }
- /*上述的两个打印记录分别打印了类加载器加载文件时所搜索的目录; 如果参数是""的话,则默认是类路径(即当前类所处的classpath路径)开始找,上述第一个输出结果为:file:/E:/workspace/practice/bin/org/guo/leaning/path/ 如果参数为"/"时,则从calsspath的跟路径开始找 输出的结果为:file:/E:/workspace/practice/bin/ 有了上述两个路径作为参照,只要我们的properties文件放置在classpath跟目录下 就都可以实用类加载器找到该文件 */
- private static String getPropsValue(String key) throws Exception {
- InputStream inputStream = ReadFile.class.getClassLoader().getResourceAsStream("11.properties");
- props.load(inputStream);
- return props.getProperty(key);
- }
- /*
- getResourceAsStream()方法即使用类加载器找到相应文件后转化为InputStream的一个方法,跟new File()然后构造一个InputStram是一样的
- 结合第一张图看:
- (1):如果我想加载跟ReadFile处于同一目录下的11.properties文件,则参数为"11.properties,因为如果不写/默认是从当前类路径下开始加载的"
- (2):如果我想加载org.guo.leaning包下面的文件则参数为"/org/guo/leaning/11.properties"因为我们是以/开头,所以是从calsspath根路径开始寻找,按照包结构写路径即可,看下classpath(默认bin)编译的路径位置就清楚了
- (3):如果我想加载src根目录下的11.properties文件,则参数值为"/11.properties"原理同上
- */
- //上述的情况都是在properties文件在classpath的情况下,使用的,如果我有个个properties文件不再classpath目录下,比如:我在项目根路径下建立了一个文件夹config里面有个11.proerties文件,那么我们该如何加载呢,此时我们就不能使用classLoader的相关方法了,因为他只能找classpath路径下的:
- private static String getPropsValue(String key) throws Exception {
- Properties props = new Properties();
- File f = new File("E:\\workspace\\practice\\config\\11.properties");
- props.load(new FileInputStream(f));
- props.load(inputStream);
- return props.getProperty(key);
- }
- /*方法改为上述即可,即先建立一个文件,文件的路径要明确指出配置文件的路径,当然我们在写程序时可能不会直接写死,会做相关的处理将该路径得到。然后得到该文件的输入流即可。非classpath路径下配置文件的读取应该有更好的方式,但是我还没发现,希望有好方法的网友留言告诉我 谢谢 */
最后一个文件夹会不会包含在classpath路径下,主要在应用的.classpath文件下配置 如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path="bin"/>
- </classpath>
0 0
- 关于java读取properties文件的路径问题
- 关于java读取properties文件的路径问题
- 关于java读取properties文件的路径问题
- 关于读取properties文件找不到路径问题
- 关于读取Properties文件以及路径问题
- 关于java读取properties文件的路径…
- Java 读取Properties文件时应注意的路径问题
- java web中读取properties文件时的路径问题
- java web中读取properties文件时的路径问题
- .properties文件读取时的路径问题
- 读取Properties文件路径问题!
- 关于系统读取properties配置文件的路径问题,包括打成jar包的运行文件
- 关于读取Properties文件的相对路径问题,怎么写是正确的?
- XX.properties文件参数读取路径问题
- 关于properties文件的读取
- java读取不到properties文件所在路径
- JAVA读取properties时路径注意问题,
- java项目读取properties路径问题
- Linux 内存管理之 mmap 解析(一)
- 技术心得六——探索者之歌
- BroadcastReceiver
- CCD工业相机的误差
- zoj 3639 Guess a Function
- 关于java读取properties文件的路径问题
- AngularJS学习(三)
- [iPhone]上[Uber]突破串号限制
- nyoj243 交换输出
- 基于Android源码的模块编译
- Python垃圾回收机制
- JSP方便路径
- 语句结构
- 【leetcode】27. Remove Element