1、读取配置文件中的数据,注意,此处读取的是部署的项目中的配置文件,而非项目本身的配置文件
public String getProData(String key){
String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
String rootPath = path.substring(0, path.lastIndexOf("/classes"));
String propertyFilePath = rootPath
+ "/classes/wodsy-config.properties";
Properties prop = new Properties();// 属性集合对象
FileInputStream fis;
try {
fis = new FileInputStream(propertyFilePath);
prop.load(fis);// 将属性文件流装载到Properties对象中
fis.close();// 关闭流
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 属性文件输入流
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return prop.getProperty(key);
}
2、重写配置文件中某个key的value,注意同上
public void editPro(String key,String value) {
String path = this.getClass().getProtectionDomain().getCodeSource()
.getLocation().getPath();
String rootPath = path.substring(0, path.lastIndexOf("/classes"));
String propertyFilePath = rootPath
+ "/classes/wodsy-config.properties";
Properties prop = new Properties();// 属性集合对象
FileInputStream fis;
try {
fis = new FileInputStream(propertyFilePath);// 属性文件输入流
prop.load(fis);// 将属性文件流装载到Properties对象中
fis.close();// 关闭流
// 修改sitename的属性值
prop.setProperty(key, value);
// 文件输出流
FileOutputStream fos = new FileOutputStream(propertyFilePath);
// 将Properties集合保存到流中
prop.store(fos, "Copyright (c) Boxcode Studio");
fos.close();// 关闭流
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
3、如果要读取项目本身而非部署的项目中的配置文件中的数据,则用以下方式
1)创建一个类,调用此类就可以
import java.text.MessageFormat;
import java.util.List;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
*
* <p>
* 参数工具类
*
* @author
*
*/
public class Messages {
private static final String BUNDLE_NAME = "wodsy-config";//$NON-NLS-1$ 此为配置文件的名称wodsy-config.properties
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
private Messages() {}
public static String getString(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
}
catch (MissingResourceException e) {
return '!' + key + '!';
}
}
public static String getString(String key, String[] paras) {
// TODO Auto-generated method stub
try {
String message = RESOURCE_BUNDLE.getString(key);
return MessageFormat.format(message, paras);
}
catch (MissingResourceException e) {
return '!' + key + '!';
}
}
public static String getString(String key, List arg) {
// TODO Auto-generated method stub
try {
if (!arg.isEmpty()) {
String[] paras = new String[arg.size()];
for (int i = 0; i < arg.size(); i++)
paras[i] = (String) arg.get(i);
return getString(key, paras);
}
return "";
}
catch (MissingResourceException e) {
return '!' + key + '!';
}
}
public static String getStringArrayRandom(String key){
String values = "";
try{
values = getString(key);
// 暂时注释掉 如运维来解决
// String[] array = values.split(",");
// int index = (int) (Math.random()*array.length);
// values = array[index];
}catch(Exception e){
e.printStackTrace();
}
return values;
}
}
2)如果wodsy-config.properties中的数据存储格式是如下
serverNo=01
userAccount=10000000
如果要获取serverNo则可以用如下方式获取Messages.getString(“serverNo”);
版权声明:本文为yflxc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。