`
tonysmith
  • 浏览: 176679 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用J2SE读取Properties文件的六种方式(转)

阅读更多

使用J2SE读取Properties文件的六种方式:
1.使用java.util.Properties类的load()方法:

Java代码 复制代码 收藏代码
  1. InputStream in = new BufferedInputStream(new FileInputStream(FILENAME));   
  2. Properties p = new Properties();   
  3. p.load(in);  
InputStream in = new BufferedInputStream(new FileInputStream(FILENAME));
Properties p = new Properties();
p.load(in);


2.使用java.util.ResourceBunld类的getBundle()方法:

Java代码 复制代码 收藏代码
  1. ResourceBundle rb = ResourceBundle.ResourceBundle.getBundle(FILENAME,Locale.getDefault())  
ResourceBundle rb = ResourceBundle.ResourceBundle.getBundle(FILENAME,Locale.getDefault())


3.使用PropertyResourceBundle

Java代码 复制代码 收藏代码
  1. InputStream in = new BufferedInputStream(new FileInputStream(name));   
  2. ResourceBundle rb = new PropertyResourceBundle(in);  
InputStream in = new BufferedInputStream(new FileInputStream(name));
ResourceBundle rb = new PropertyResourceBundle(in);


4.使用Class类的getResourceAsStream(String name)
5.使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
6.使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
下面转自:http://blog.csdn.net/bincavin/archive/2010/03/09/5359047.aspx
通常,在实际项目中,为了便于配置管理,我们需要将一些配置管理信息存储在.properties文件中,然后直接从中读取,这样就避免了很多硬编码。下面,通过一个例子,详细讲解如何读取.properties文件的数据。

  1.建立一个包config,专门存放.properties等配置文件,在config包下建一个文件a.properties,为了便于测试,在a.properties下添加如下信息:

  name=kaka

  age=28

  2.建立一个包prop,用来测试。在prop包下建立LoadProp.java文件。

  3.有很多方法来读取.properties文件,现将主要方法罗列出来:

  a.通过class的getResourceAsStream()方法来读取

  

Java代码 复制代码 收藏代码
  1. package prop;   
  2.   
  3.   import java.io.IOException;   
  4.   
  5.   import java.io.InputStream;   
  6.   
  7.   import java.util.Properties;   
  8.   
  9.   public class LoadProp {   
  10.   
  11.   public static void main(String[] args) {   
  12.   
  13.   LoadProp loadProp = new LoadProp();   
  14.   
  15.   InputStream in = loadProp.getClass().getResourceAsStream("/config/a.properties");   
  16.   
  17.   Properties prop = new Properties();   
  18.   
  19.   try {   
  20.   
  21.   prop.load(in);   
  22.   
  23.   } catch (IOException e) {   
  24.   
  25.   e.printStackTrace();   
  26.   
  27.   }   
  28.   
  29.   System.out.println(prop.getProperty("name""none"));   
  30.   
  31.   System.out.println(prop.getProperty("age""none"));   
  32.   
  33.   }   
  34.   
  35.   }  
package prop;

  import java.io.IOException;

  import java.io.InputStream;

  import java.util.Properties;

  public class LoadProp {

  public static void main(String[] args) {

  LoadProp loadProp = new LoadProp();

  InputStream in = loadProp.getClass().getResourceAsStream("/config/a.properties");

  Properties prop = new Properties();

  try {

  prop.load(in);

  } catch (IOException e) {

  e.printStackTrace();

  }

  System.out.println(prop.getProperty("name", "none"));

  System.out.println(prop.getProperty("age", "none"));

  }

  }


  一定要注意的是,class里的getResourceAsStream()方法里参数的类路径一定要在前面加上"/",否则会报错

b.使用class的getClassLoader()方法所得的ClassLoader的getResourceAsStream()来读取 package prop;

  

Java代码 复制代码 收藏代码
  1. import java.io.IOException;   
  2.   
  3.   import java.io.InputStream;   
  4.   
  5.   import java.util.Properties;   
  6.   
  7.   public class LoadProp {   
  8.   
  9.   public static void main(String[] args) {   
  10.   
  11.   LoadProp loadProp = new LoadProp();   
  12.   
  13.   InputStream in = loadProp.getClass().getClassLoader().getResourceAsStream("config/a.properties");   
  14.   
  15.   Properties prop = new Properties();   
  16.   
  17.   try {   
  18.   
  19.   prop.load(in);   
  20.   
  21.   } catch (IOException e) {   
  22.   
  23.   e.printStackTrace();   
  24.   
  25.   }   
  26.   
  27.   System.out.println(prop.getProperty("name""none"));   
  28.   
  29.   System.out.println(prop.getProperty("age""none"));   
  30.   
  31.   }   
  32.   
  33.   }  
import java.io.IOException;

  import java.io.InputStream;

  import java.util.Properties;

  public class LoadProp {

  public static void main(String[] args) {

  LoadProp loadProp = new LoadProp();

  InputStream in = loadProp.getClass().getClassLoader().getResourceAsStream("config/a.properties");

  Properties prop = new Properties();

  try {

  prop.load(in);

  } catch (IOException e) {

  e.printStackTrace();

  }

  System.out.println(prop.getProperty("name", "none"));

  System.out.println(prop.getProperty("age", "none"));

  }

  }


  ClassLoader的getResourceAsStream()方法与Class的getResourceAsStream()方法有点区别,在这里一定不要在类路径前面加上"/",否则会报错,是不是很奇怪。

  c.使用ResourceBundle来读取

  

Java代码 复制代码 收藏代码
  1. package prop;   
  2.   
  3.   import java.util.ResourceBundle;   
  4.   
  5.   public class LoadProp {   
  6.   
  7.   public static void main(String[] args) {   
  8.   
  9.   ResourceBundle rb = ResourceBundle.getBundle("config/a");   
  10.   
  11.   System.out.println(rb.getString("name"));   
  12.   
  13.   System.out.println(rb.getString("age"));   
  14.   
  15.   }   
  16.   
  17.   }  
package prop;

  import java.util.ResourceBundle;

  public class LoadProp {

  public static void main(String[] args) {

  ResourceBundle rb = ResourceBundle.getBundle("config/a");

  System.out.println(rb.getString("name"));

  System.out.println(rb.getString("age"));

  }

  }

  注意,getBundle()方法里的参数,是baseName,不要把后缀名写出来,并且不要加"/"。

  好了,这是读取.properties文件的几种主要方法,还有其他的方法,基本上都大同小异。另外,在Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法来读取.properties文件,这里就不详述了。

分享到:
评论

相关推荐

    使用J2SE API读取Properties文件的六种方法

    以上就是使用J2SE API读取Properties文件的六种方法,每种方法都有其适用的场景,开发者应根据实际需求选择合适的方式。在处理Properties文件时,注意异常处理和资源关闭,确保程序的健壮性和效率。

    J2SE API读取Properties文件六种方法

    以上介绍了六种使用J2SE API读取Properties文件的方法,每种方法都有其适用场景。开发者可以根据实际需求选择最适合的方式来加载配置文件。需要注意的是,在处理输入流时,一定要确保及时关闭它们,避免资源泄露的...

    使用J2SEAPI读取Properties文件的六种方法

    本文将详细介绍六种使用J2SE API(Java标准版API)来读取Properties文件的方法,帮助开发者更好地理解和操作这类文件。 1. 使用Properties类的load()方法 这是最基础且常用的方法,直接通过InputStream读取...

    API读取Properties文件的六种方法

    ### API读取Properties文件的六种方法 在Java开发中,`Properties` 文件常用于存储配置信息,如数据库连接字符串、应用配置等。通过API读取这些文件是开发者经常遇到的任务之一。本文将详细介绍六种使用J2SE API...

    在web和j2se中两个不同环境下 读取配置文件 备忘

    总之,无论是Web环境还是J2SE环境,读取配置文件都是通过`java.util.Properties`类来实现的。Web环境下,我们通常依赖类加载器来定位文件;而在J2SE环境下,我们可以直接使用文件路径。理解并掌握这两种方法,对于...

    提供j2me使用的优化过的Properties源码

    Properties类在J2SE中用于存储配置信息,它继承了Hashtable类,可以处理键值对的数据,并且支持文本格式的输入输出,通常用于保存和读取应用程序的配置参数。 标题中提到的"提供j2me使用的优化过的Properties源码...

    others

    "使用J2SE API读取Properties文件的六种方法.txt"可能详细列举了从Java标准版库(J2SE)中加载和操作Properties文件的不同方式,包括InputStream、Properties类的方法等。 6. **flashplayer-win.zip**: 这可能是...

    java中Properties文件加载和使用方法

    Java中的Properties类是Java语言用来处理属性列表的工具类,它是HashTable的子类,主要用于读取和存储配置文件中的键值对数据。这些配置文件通常用于存储应用的配置信息,如数据库连接字符串、系统参数等。...

    J2SE.programming.SimpleConfig.code.rar_java programming

    要深入了解SimpleConfig的工作原理和使用方式,你需要解压文件并查看源代码、测试代码以及任何相关的文档。这将提供一个实际的示例,帮助你理解如何在Java项目中创建和管理配置,同时也能学习到自定义框架的设计和...

    Java-J2SE学习笔记

    它可以读取.properties格式的文件,进行国际化处理。通过`load()`方法加载文件,`getProperty()`方法获取属性值,`setProperty()`设置属性,`store()`方法则可以将属性保存到文件。 2. **super关键字**: super...

    Derby数据库的使用指南--包括存图片到数据库和读取数据库中的图片操作

    感觉:因为derby是纯Java的数据库,因此与应用可以无缝连接,它支持中文、图片的存贮与读取等。是一个非常好客户端数据库。该数据数应该为J2ME编程带来非常大的好处,同时也为J2SE和J2EE编程来带方便。

    Quartz调度学习笔记

    Quartz 的调度方式有两种:编程式和配置式。编程式调度允许你在代码中直接创建和安排 Jobs,这适合于任务调度需求比较灵活或者需要在运行时动态调整的情况。配置式调度则通过一个名为 `quartz_jobs.xml` 的配置文件...

    Java JDK实例宝典

    13 Properties属性文件 第5章 字符串 5. 1 使用String 5. 2 基本数据类型与字符串的转化 5. 3 判断Java标识符 5. 4 使用StringBuffer 5. 5 IP地址转化成整数 5. 6 18位身份证格式验证 ...

    心兰记事本

    Java提供多种方式实现数据存储,如使用Properties类保存键值对,或者利用序列化机制将对象状态保存到文件中。当用户关闭并重新打开【心兰记事本】时,程序可以读取这些存储的样式信息,恢复到用户上次编辑时的状态。...

    tomcat_连接池数据库密码加密解密方法

    在Tomcat环境下,连接池通常使用Apache Commons DBCP(Database Connection Pool)来管理数据库连接。默认情况下,DBCP会直接读取配置文件中的用户名和密码,这意味着这些信息是以明文形式存在的。一旦服务器被非法...

    阿里云-负载均衡服务SDK手册.pdf

    开发者需将解压后的`aliyun-sdk-java-online_standard-20141120.jar`文件添加到项目构建路径中,例如在Eclipse中,通过右键点击工程 -> Properties -> Java Build Path -> Libraries -> Add External JARs进行导入。...

    Java源码--自编的电话本

    8. **文件操作**:项目可能包含读取和保存配置文件的代码,比如数据库连接信息,这些信息可能以XML或properties文件的形式存储。 9. **设计模式**:在编写源码时,开发者可能应用了一些常见的设计模式,如单例模式...

    javamail-1_4.zip

    这个“javamail-1_4.zip”文件包含的是JavaMail 1.4版本的源代码、API文档和其他相关资源,使得开发者能够在J2SE环境中开发与邮件相关的应用,而无需额外安装。J2EE平台虽然自身集成了邮件服务支持,但对于J2SE环境...

Global site tag (gtag.js) - Google Analytics