Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Java读取properties时路径注意问题

先来看看建立的测试工程目录 属性文件我们放在包test下,当然了,一般在实际开发过程中不建议这样做,建立把属性文件放在src目录下,现在放在包下主要是便于了解路径的问题。下面来看一段读取属性文件的代码,属性文件配置了一个类Hello的K-V键值,我们要从中读取并加载到内存中来。Java 8 中 HashMap 的性能提升 http://www.linuxidc.com/Linux/2014-04/100868.htmJava 8 的 Nashorn 引擎 http://www.linuxidc.com/Linux/2014-03/98880.htmJava 8简明教程 http://www.linuxidc.com/Linux/2014-03/98754.htmReadProperties.propertiesv=com.luhy.test.HelloHello类:package com.luhy.test;public class Hello {
 public void run(){
  System.out.println("Hello");
 }
}ReadProperties.javapackage com.luhy.test;import java.util.Properties;public class ReadProperties {
 public static void main(String[] args) throws Exception{
  String filename = "com/luhy/test/ReadProperties.properties";
  Properties props = new Properties();
  props.load(ReadProperties.class.getClassLoader().getResourceAsStream(filename));
  String h = props.getProperty("v");
  Object o = Class.forName(h).newInstance();
  Hello hello = (Hello)o;
  hello.run();
 
 }
}执行完打印输出:Hello下面再来看一下编译后的bin目录 可见编译后属性文件被自动放到相应的包内,当然了,这里的bin相当于源码中的src,实际开发中一般放在此src目录下,这样在发布项目时就不用折腾了。说明:1、props.load(ReadProperties.class.getClassLoader().getResourceAsStream(filename));意思是获得从Properties类获得类加载器(类加载器主要有四种,分别加载不同类型的类,加载只是把class文件放进内存,并没有产生对象),并把指定文件转化为流。这一步,有很多新手,直接往load()里填文件名或具体文件路径名,程序运行时会报错找不到指定路径。所以,一定要注意这点。本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-06/102731.htm