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

读取配置文件

    博客分类:
  • IO
阅读更多

一:读取置文件xxx.properties的value值

1.利用property类读取配置文件

/**
 * @author guwh
 * @version 创建时间:2011-4-2 下午02:30:27
 * 类说明
 */
package test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**解析xxx.properties文件
 * 并假定使用 ISO 8859-1 字符编码;即每个字节都是 Latin1 字符
 * 对于非 Latin1 的字符和某些特殊字符,可以使用 Unicode 转义以键和元素的形式来表示它们
 * 配置文件格式:
 * 按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)
 * 如:键为Truth,值为Beauty
 * Truth  = Beauty
 *     Truth =    Beauty
 * Truth :    Beauty
 * 键为fruits,值为apple,banana,pear,cantaloupe,watermelon,kiwi,mango
 * fruits:
 * apple,banana,pear,\
 * cantaloupe,watermelon,\
 * kiwi,mango
 * 注释行以 ASCII 字符 '#' 或 '!' 作为开头,不参加解析
 * @author guwh
 *
 */
public class TestParseProperties {
	private static TestParseProperties parseProperties;
	//获取java.util.Properties类
	Properties properties = new Properties();

	private TestParseProperties() {
		try {
			this.parseProp();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static TestParseProperties getInstance() {
		if (parseProperties == null)
			parseProperties = new TestParseProperties();
		return parseProperties;

	}

	
	public Properties parseProp() throws IOException {
		/**
		 * Class.getResourceAsStream(String name) 
		 * 查找具有给定名称的资源,return 一个 InputStream 对象
		 * 如果找不到带有该名称的资源,则返回 null 
		 * NullPointerException - 如果 name 是 null
		 */
		
		/**
		 * 配置文件jwt.properties在包src.com.jabberchina.xmppserver.plugin.jwt.vo下
		InputStream is = this.getClass().getResourceAsStream("/com/jabberchina/xmppserver/plugin/jwt/vo/jwt.properties");
		 */
		/**
		 * 配置文件jwt.properties1与本类TestParseProperties在同一包目录src.test下
		InputStream is = this.getClass().getResourceAsStream("jwt.properties1");
		 */
		
		//配置文件jwt2.properties在包src.test.property下
		InputStream is = this.getClass().getResourceAsStream("property/jwt2.properties");
		/**
		 * Properties.load(InputStream inStream)从输入流中读取属性列表(键和元素对)
		 * IOException - 如果读取输入流时发生错误。
		 * IllegalArgumentException - 如果输入流包含错误的 Unicode 转义序列
		 * 此方法返回后,指定的流(inStream)仍保持打开状态,所以若不再使用inStream要手动关闭
		 * 返回类型void 
		 */
		properties.load(is);
		is.close();
		return properties;
	}

	public String getProperties(String key) {
		/**
		 *用指定的键在此属性列表中搜索属性
		 *如果在此属性列表中未找到该键,则接着递归检查默认属性列表及其默认值,如果未找到属性,则此方法返回 null
		 *返回类型String
		 */
		return properties.getProperty(key);
	}

	public static void main(String[] args) {
		String key = "dadaPath";
		String restult = TestParseProperties.getInstance().getProperties(key);
		System.out.println("proties value is "+restult);
	}

}

当然 property也可以读取xml配置文件方法为  property.loadFromXML(InputStream inputStream)

/**
* @author guwh
* @version 创建时间:2011-4-2 下午03:53:10
* 类说明
*/ 
package test;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

import org.apache.commons.io.FilenameUtils;

/**
 * XML 属性文档具有以下 DOCTYPE 声明:
 *   <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
 *   如:
 *   <?xml version="1.0" encoding="UTF-8"?> 
 *<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> 
 *<properties> 
 *<entry key="pinyin">hehe</entry>
 *<entry key="name">呵呵</entry>
 *</properties>
 * @author guwh
 *
 */
public class TestParseXML {
	private static TestParseXML parseXML;
	Properties properties = new Properties();
	private TestParseXML(){
		try{
			this.parseXML();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	public static TestParseXML getInstance(){
		if(parseXML == null)
			parseXML = new TestParseXML();
		return parseXML;
	}
	
	public Properties parseXML() throws IOException{
		String filePath = "D:/";
		String filename = "test.xml";
		/**
		 * 以绝对路径方式从磁盘上读取
		 * 
		 */
		BufferedInputStream inBuff=new BufferedInputStream(new FileInputStream(filePath+filename));
		/**
		 * 以相对路径方式从工程中读取
                 *  String filename = "test.xml";
		 * InputStream inBuff = this.getClass().getResourceAsStream(filename);
		 */
		if("xml".equalsIgnoreCase(FilenameUtils.getExtension(filename)))
			properties.loadFromXML(inBuff);
		inBuff.close();
		return properties;
	}
	
	public String gerXMLValue(String key){
		return properties.getProperty(key);
	}
	
	public static void main(String[] args) {
		String key = "pinyin";
		String restult = TestParseXML.getInstance().gerXMLValue(key);
		System.out.println("gerXMLValue value is "+restult);
	}

}

 注意xml配置文件中的encoding="UTF-8"要与实际文件中的编码方式一致,否则会报错

二:利用ResourceBundle类读取配置文件此类多用于解析国际化文件

/**
* @author guwh
* @version 创建时间:2011-4-2 下午03:47:38
* 类说明
*/ 
package test;

import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;

public class TestResourceBundleParse {
	private TestResourceBundleParse() {

	}

	private static PropertyResourceBundle prb;
	static {
		/**
		 * name 为完全限定名(即包名+文件/类名)
		 */
		String name = "com.jabberchina.xmppserver.plugin.jwt.util.jwt1";
		prb = (PropertyResourceBundle) ResourceBundle.getBundle(name);
	}

	public static final String getString(String propertyName) {
		return prb.getString(propertyName);
	}
	public static void main(String[] args) {
		String key = "dadaPath";
		String restult = TestResourceBundleParse.getString(key);
		System.out.println("proties value is "+restult);
	}
}

 三:利用Spring读取配置文件中的信息,略。

注意:

以上方法中读文件时,文件名(即文件路径的书写)是不同的,在方法一中获得InputStream流时若通过Class.getResourceAsStream(String  filename)获得,则filename为相对路径+文件名;若通过new FileInputStream(String  filename)的其他new一个流的方式获得InputStream流则filename为绝对路径+文件名,即磁盘中实际路径+文件名。而二中通过ResourceBundle.getBundle(String name)的方式获得PropertyResourceBundle对象时,name为完全限定名,需注意!

分享到:
评论

相关推荐

    java读取配置文件

    在Java编程中,读取配置文件是常见的任务,特别是在开发需要灵活配置的系统时。配置文件通常用于存储应用程序的设置,如数据库连接信息、服务器端口、第三方服务的API密钥等,这些信息可能需要根据不同的环境或需求...

    基于Qt的读取配置文件

    [MoonlightService这个string串就是读取配置文件的路径,可以写成宏函数] 3.在判断完m_iniFile是否为空, 接下来就是可以使用了 举例: if (m_iniFile != NULL){ strRet = m_iniFile-&gt;GetValue("moonlightService...

    SpringBoot-2.7.6读取配置文件的方式

    本篇文章将详细介绍Spring Boot如何读取配置文件,以及提供一些调试示例代码,帮助你更好地理解和运用。 ### 1. 配置文件位置与优先级 Spring Boot支持多种类型的配置文件,包括`application.properties`和`...

    封装读取配置文件

    除了默认读取配置文件外,还提供了根据特定路径读取配置文件的功能,通过`getPropertyValue`方法,开发者可以根据需要指定不同的配置文件路径,增强了框架的灵活性和适应性。 ### 结论 封装读取配置文件的方法,...

    java 读取配置文件

    在Java编程中,读取配置文件是常见的任务,特别是在构建可扩展和可维护的应用程序时。配置文件通常用于存储应用程序的设置、连接信息或其他敏感数据,这样可以将这些信息与核心代码分离,便于管理和更新。本篇文章将...

    Linux shell 脚本读取配置文件

    Linux 系统 shell脚本读取配置文件

    读取配置文件代码

    在Java编程中,读取配置文件是常见的任务,它允许我们分离应用程序的配置信息,使得配置可以在不修改源代码的情况下更改。本示例将详细解释如何使用Java来读取configuration配置文件中的内容,以实现更灵活和可维护...

    用enum实现单例模式的方法来读取配置文件

    `Properties`类用于处理键值对,它是Java中读取配置文件的标准方式。 要获取配置文件中的数据,我们可以调用`Singleton.INSTANCE.getProperties()`。例如,如果配置文件中有`database.url`属性,我们可以通过以下...

    VC++ 读取配置文件

    总结来说,VC++中读取配置文件的关键在于理解和正确使用`GetPrivateProfileString`和`GetPrivateProfileInt`函数。这两个函数能帮助开发者方便地从INI文件中获取应用程序所需的配置信息,从而实现灵活的配置管理。

    c++读取配置文件

    在C++编程中,读取配置文件是一项常见的任务,它允许程序在运行时根据外部文件中的设置进行调整,而不是硬编码这些参数。本教程将详细讲解如何使用C++读取配置文件,特别是针对TXT格式的文件,因为它们简单且易于...

    spring mvc 读取配置文件

    这篇博客“spring mvc 读取配置文件”将深入探讨如何在Spring MVC中读取和使用配置文件,以及相关工具的应用。 首先,Spring MVC中的配置文件通常是指XML配置文件,如`applicationContext.xml`或`servlet-context....

    读取配置文件的简单方式

    在IT开发过程中,读取配置文件是一个常见的任务,它允许我们动态地管理应用程序的设置,如数据库连接字符串、API密钥或系统参数。本篇文章将深入探讨如何以简单的方式读取本地配置文件,并结合CListBox控件实现中...

    c# 通过配置文件读取数据库连接字符创,读取配置文件值

    1. **读取配置文件**: - 使用`ConfigurationManager`类的`OpenExeConfiguration`方法打开当前执行程序的配置文件。 - `Configuration`对象可以访问配置文件的所有部分,如`AppSettings`、`ConnectionStrings`等。...

    保存INI配置文件和读取配置文件

    INI 配置文件的保存和读取 INI 配置文件是一种常见的文件格式,用于存储程序的配置信息。它是一种简单的持久化机制,允许程序在启动时初始化配置信息。INI 文件由多个节(Section)组成,每个节中可以有多个键名...

    读取配置文件获得数字进行计算

    在IT行业中,读取配置文件并获取数字进行计算是一项基础且重要的任务,广泛应用于各种软件系统和应用程序。配置文件通常包含应用的设置、参数或环境信息,这些信息往往是以键值对的形式存储,便于程序在运行时动态...

    linux读取配置文件

    在Linux系统中,读取配置文件是日常管理任务的一部分,特别是在使用像MySQL这样的数据库服务时。配置文件通常存储了服务的参数和设置,以便于管理和调整。本篇将详细讲解如何在Linux环境下处理类似“标题”中提到的...

    VC++ 6.0 mfc 读取配置文件实例

    VC++ 6.0 mfc 读取配置文件实例 VC++ 6.0 mfc 读取配置文件实例 VC++ 6.0 mfc 读取配置文件实例 VC++ 6.0 mfc 读取配置文件实例 VC++ 6.0 mfc 读取配置文件实例 VC++ 6.0 mfc 读取配置文件实例 VC++ 6.0 mfc 读取...

    python读取配置文件

    在Python编程中,读取配置文件是一个常见的任务,它允许我们分离程序的配置信息,如数据库连接、API密钥或应用程序设置,以便于管理和维护。本文将深入探讨如何使用Python来读取配置文件,主要关注从`.ini`、`.json`...

    java读取配置文件(axun)

    在Java编程中,读取配置文件是常见的任务,特别是在构建可扩展和可维护的应用程序时。配置文件通常用于存储应用程序的动态设置,如数据库连接字符串、API密钥、服务器地址等,这些信息需要在运行时根据环境进行调整...

Global site tag (gtag.js) - Google Analytics