您的位置:首页 > 编程语言 > Java开发

Java中读取资源文件的工具类

2012-04-18 16:37 411 查看
装载:/article/2675956.html



[java]
view
plaincopy

package com.justsy;

import java.io.InputStream;

import java.util.Properties;

public class PropertiesManager {

private String resName = "appstore.properties";

private Properties prop = new Properties();

public PropertiesManager configuration() {

try {

InputStream is = PropertiesManager.class.getClassLoader()

.getResourceAsStream(resName);

prop.load(is);

if (is != null)

is.close();

} catch (Exception e) {

System.out.println(e + "file " + resName + " not found");

}

return this;

}

public String getPara(String url) {

return prop.getProperty(url);

}

public static void main(String[] args) {

PropertiesManager pm = new PropertiesManager().configuration() ;

System.out.println(pm.getPara("url"));

}

}

使用单例进行优化后的工具类

[java] view
plaincopy

package com.justsy.eas.util;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

import org.apache.log4j.Logger;

/**

* 读取配置文件

*/

public class PropertiesReader {

private Logger logger = Logger.getLogger(Properties.class) ;

private Properties properties ;

private static PropertiesReader propertiesReader = new PropertiesReader() ;

private String resName = "eas.properties" ;

// 单例私有化构造方法

private PropertiesReader(){

InputStream is = PropertiesReader.class.getClassLoader()

.getResourceAsStream(resName);

properties = new Properties() ;

try {

properties.load(is);

logger.info("加载配置信息!!") ;

} catch (IOException e) {

logger.warn("加载配置文件出错!") ;

//e.printStackTrace();

}

}

// 得到PropertiesReader的实例

public static PropertiesReader getInstance(){

if(propertiesReader==null){

return new PropertiesReader() ;

}

return propertiesReader ;

}

// 返回所有属性

public Properties getProperties(){

return this.properties ;

}

public static void main(String[] args) {

Properties properties = PropertiesReader.getInstance().getProperties() ;

System.out.println(properties.getProperty("dbaddr"));

}

}

什么时候我的博客也能写成这个样子。拿来就能用。简单明了。。

出处:/article/11169037.html

Properties 基本知识(包括了循环读取properties)

  如果不熟悉 java.util.Properties 类,那么现在告诉您它是用来在一个文件中存储键-值对的,其中键和值是用等号分隔的,如清单 1 所示。

  清单 1. 一组属性示例

foo=bar

fu=baz
  将清单 1 装载到 Properties 对象中后,您就可以找到两个键( foo 和 fu )和两个值( foo 的 bar 和 fu 的 baz )了。这个类支持带 /u 的嵌入 Unicode 字符串,但是这里重要的是每一项内容都当作 String 。

JAVA轻松操作properties文件的示例程序:

package control;

import java.io.BufferedInputStream;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Enumeration;

import java.util.Properties;

public class TestMain {

//根据key读取value

public static String readValue(String filePath,String key) {

Properties props = new Properties();

try {

InputStream in = new BufferedInputStream (new FileInputStream(filePath));

props.load(in);

String value = props.getProperty (key);

System.out.println(key+value);

return value;

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

//读取properties的全部信息

public static void readProperties(String filePath) {

Properties props = new Properties();

try {

InputStream in = new BufferedInputStream (new FileInputStream(filePath));

props.load(in);

Enumeration en = props.propertyNames();

while (en.hasMoreElements()) {

String key = (String) en.nextElement();

String Property = props.getProperty (key);

System.out.println(key+Property);

}

} catch (Exception e) {

e.printStackTrace();

}

}

//写入properties信息

public static void writeProperties(String filePath,String parameterName,String parameterValue) {

Properties prop = new Properties();

try {

InputStream fis = new FileInputStream(filePath);

//从输入流中读取属性列表(键和元素对)

prop.load(fis);

//调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。

//强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。

OutputStream fos = new FileOutputStream(filePath);

prop.setProperty(parameterName, parameterValue);

//以适合使用 load 方法加载到 Properties 表中的格式,

//将此 Properties 表中的属性列表(键和元素对)写入输出流

prop.store(fos, "Update '" + parameterName + "' value");

} catch (IOException e) {

System.err.println("Visit "+filePath+" for updating "+parameterName+" value error");

}

}

public static void main(String[] args) {

readValue("info.properties","url");

writeProperties("info.properties","age","21");

readProperties("info.properties" );

System.out.println("OK");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: