java读取.properties配置文件的几种方法

读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法(仅仅是我知道的):
一、通过jdk提供的java.util.Properties类。
此类继承自java.util.HashTable,即实现了Map接口,所以,可使用相应的方法来操作属性文件,但不建议使用像put、putAll这两个方法,因为put方法不仅允许存入String类型的value,还可以存入Object类型的。因此java.util.Properties类提供了getProperty()和setProperty()方法来操作属性文件,同时使用store或save(已过时)来保存属性值(把属性值写入.properties配置文件)。在使用之前,还需要加载属性文件,它提供了两个方法:load和loadFromXML。
load有两个方法的重载:load(InputStream inStream)、load(Reader reader),所以,可根据不同的方式来加载属性文件。
可根据不同的方式来获取InputStream,如:
1、通过当前类加载器的getResourceAsStream方法获取

[java] view plain copy

  1. InputStream inStream = TestProperties.class.getClassLoader().getResourceAsStream("test.properties");

2、从文件获取

[java] view plain copy

  1. InputStream inStream = new FileInputStream(new File("filePath"));

3、也是通过类加载器来获取,和第一种一样

[java] view plain copy

  1. InputStream in = ClassLoader.getSystemResourceAsStream("filePath");

4、在servlet中,还可以通过context来获取InputStream

[java] view plain copy

  1. InputStream in = context.getResourceAsStream("filePath");

5、通过URL来获取

[java] view plain copy

  1. URL url = new URL("path");
  2. InputStream inStream = url.openStream();

读取方法如下:

[java] view plain copy

  1. Properties prop = new Properties();
  2. prop.load(inStream);
  3. String key = prop.getProperty("username");
  4. //String key = (String) prop.get("username");

二、通过java.util.ResourceBundle类来读取,这种方式比使用Properties要方便一些。
1、通过ResourceBundle.getBundle()静态方法来获取(ResourceBundle是一个抽象类),这种方式来获取properties属性文件不需要加.properties后缀名,只需要文件名即可。

[java] view plain copy

  1. ResourceBundle resource = ResourceBundle.getBundle("com/mmq/test");//test为属性文件名,放在包com.mmq下,如果是放在src下,直接用test即可
  2. String key = resource.getString("username");

2、从InputStream中读取,获取InputStream的方法和上面一样,不再赘述。

[java] view plain copy

  1. ResourceBundle resource = new PropertyResourceBundle(inStream);

注意:在使用中遇到的最大的问题可能是配置文件的路径问题,如果配置文件入在当前类所在的包下,那么需要使用包名限定,如:test.properties入在com.mmq包下,则要使用com/mmq/test.properties(通过Properties来获取)或com/mmq/test(通过ResourceBundle来获取);属性文件在src根目录下,则直接使用test.properties或test即可。

时间: 2024-10-27 05:40:11

java读取.properties配置文件的几种方法的相关文章

java读取properties文件的几种方法

一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取 Java代码   Properties p=new Properties(); //p需要InputStream对象进行读取文件,而获取InputStream有多种方法: //1.通过绝对路径:InputStream is=new FileInputStream(filePath); //2.通过Class.getResourceAsStream(path)

Java 读取properties 配置文件的几种方式

基于ClassLoder读取配置文件 Properties properties = new Properties(); // 使用ClassLoader加载properties配置文件生成对应的输入流 InputStream in = PropertiesMain.class.getClassLoader().getResourceAsStream("config/config.properties"); // 使用properties对象加载输入流 properties.load(

Java 读取 .properties 配置文件的几种方式

1.基于ClassLoder读取配置文件 注意:该方式只能读取类路径下的配置文件,有局限但是如果配置文件在类路径下比较方便. 1 Properties properties = new Properties(); 2 // 使用ClassLoader加载properties配置文件生成对应的输入流 3 InputStream in = PropertiesMain.class.getClassLoader().getResourceAsStream("config/config.properti

java读取properties配置文件总结

java读取properties配置文件总结 在日常项目开发和学习中,我们不免会经常用到.propeties配置文件,例如数据库c3p0连接池的配置等.而我们经常读取配置文件的方法有以下两种: (1).使用getResourceAsStream()方法读取配置文件. (2).使用InputStream()流去读取配置文件. 注意:在使用getResourceAsStream()读取配置文件时,要特别注意配置文件的路径的写法. this.getClass.getResourceAsStream(f

java读取properties配置文件

java读取.properties配置文件 这两天做java项目,用到属性文件,到网上查资料,好半天也没有找到一个满意的方法能让我读取到.properties文件中属性值,很是郁闷,网上讲的获取属性值大概有以下方法,以下三种方法逐渐优化,以达到最好的效果以下都以date.properties文件为例,该文件放在src目录下,文件内容为 startdate=2011-02-07 totalweek=25 方法一: public class Stweek { static private Strin

Java读取properties配置文件常用方法

在开发中对properties文件的操作还是蛮经常的,所以总结了几种操作方法,为后面的开发可以进行参考. 1.通过java.util.ResourceBundle类来读取 这边测试用到了枚举类进行传入文件的key值,然后获取value,可以进行灵活的配置. 通过这种方式读取properties文件不需要加.properties后缀名,只需文件名即可,如果有放在某一个包下,要加包的限定名,如放在com.frame.util包下,则要路径要用com/fram/util config.properti

Java 读取Properties配置文件

读取Properties配置文件的方法,经常忘记,记录下来备忘一下: package utils; import java.io.IOException;import java.io.InputStream; import java.util.Properties; public class PropertyConfig { private static Properties config; static { config = new Properties(); InputStream in =

Java读取properties配置文件时,中文乱码解决方法

碰到了用java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码的现象 Properties prop=new Properties(); prop.load(Client.class.getClassLoader().getResourceAsStream("config.properties")); 由于使用这样的加载方式使用了系统默认的编码格式,不是UTF-8格式的读取模式,就会发生乱码情况. 正确解决方法 Properties prop=n

Java读取xml文件的四种方法,及其取得配置文件的方法

xml文件: Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> <NO>A1234</NO> <ADDR>河南省郑州市</ADDR> </VALUE> <VALUE> <NO>B1234</NO> <ADDR>河南省郑州市二七区</ADDR&g