日期:2014-05-20  浏览次数:20746 次

怎样读取配置文件
各位好: 

 我在websphere下面创建了一个工作空间,现在想自己写一个配置文件config.xml放到工作空间下,然后在java代码里面可以读取这个配置文件的内容 
现在的问题是,这个配置文件该放在工作空间的什么目录下,才能让java代码读到? 
java代码可以直接去读吗? 

或者我把这个文件放在服务器的一个路径下,等到需要读取这个文件的时候,在java代码里面直接从这个路径把它读取进来?这样合适吗?

谢谢了!!

------解决方案--------------------
采用相对路径吧
------解决方案--------------------
用dom4j
------解决方案--------------------
直接放到文件系统中,然后代码中去按照路径找到这个文件即可
------解决方案--------------------
给你个代理参考一下把
package com.hotel.sunsdk.system;

import java.util.*;
import java.io.*;

public class Systemini{

private static Properties ini = null;

static {
try {
ini = new Properties ();
InputStream in =Systemini.class.getClassLoader().getResourceAsStream("config/Config.ini");
ini.load (in);
}catch (Exception ex) {
System.out.println ("Load CONFIG.INI is false!!");
}//End try
}

/**=======================================================================**
* [## private sunini() {} ]: 构造函数
* 参数 :无
* 返回值 :无
* 修饰符 :private
* 功能 :防止实例化sunini对象
**=======================================================================**
*/
private Systemini() {
}

/**=======================================================================**
* [## public static String getIniKey (String k) {} ]:
* 参数 :String对象表示键
* 返回值 :String对象表示k键所对应的键值,如果失败则返回空串
* 修饰符 :public static 可以不实例化对象而直接调用方法
* 功能 :获得INI文件中的指定键的键值
**=======================================================================**
*/
public static String getIniKey (String k) {
if(!ini.containsKey (k)) { //是否有 k 这个键
System.out.println ("The [ " + k + " ] Key is not exist!!");
//return "";
}//End if(!ini.containsKey (k))
return ini.get (k).toString ();
}

/**=======================================================================**
* [## public static void setIniKey (String k, String v) {} ]:
* 参数 :String k对象表示键,String v对象表示键值
* 返回值 :无
* 修饰符 :public static 可以不实例化对象而直接调用方法
* 功能 :设置k键的键值为v对象
**=======================================================================**
*/
public static void setIniKey (String k, String v) {
if(!ini.containsKey (k)) { //是否有 k 这个键
System.out.println ("The [ " + k + " ] Key is not exist!!");
return;
}//End if(!ini.containsKey (k))
ini.put (k, v);
}

/**=======================================================================**
* [## public static void saveIni (String k[]) {} ]:
* 参数 :String k[]字符串数组表示要保存的所有键
* 返回值 :无
* 修饰符 :public static 可以不实例化对象而直接调用方法
* 功能 :将k字符数组中所有键所对应的键值保存到INI文件中
**=======================================================================**
*/
public static void saveIni (String k[]) {
try {
FileWriter fw = new FileWriter ("config/config.ini");
BufferedWriter bw = new BufferedWriter ( fw );
//循环变量i是k字符串数组的下标
for (int i = 0; i < k.length; i++) {
bw.write (k[i] + "=" + getIniKey (k[i]));
bw.newLine ();
}//End for
bw.close ();
fw.close ();
}catch (Exception ex) {
System.out.println ("Save CONFIG.INI is false.");
}//End try
}

}
------解决方案--------------------
我想不论哪种都可以,但放在一个相对路径下会更好些...