原有配置文件,user.propertiesip=10.1.1.0
username=user1
pwd=8888程序读取的时候都是取关键字:String ip = imp.getProperty("ip");
......现在的情况是:
我再配置文件中增加了一些key.我的程序能够动态的得到这些key,并取得key的值吗?谢谢!
username=user1
pwd=8888程序读取的时候都是取关键字:String ip = imp.getProperty("ip");
......现在的情况是:
我再配置文件中增加了一些key.我的程序能够动态的得到这些key,并取得key的值吗?谢谢!
prop.load(fin);String ip = imp.getProperty("ip");
所set到里面的值事实上是没有写到属性文件里,也就是说,当 当次程序后,
在下一次,再读去刚才set进去的值,拿到的就是null.如果要真正的写进去,可能要用到文件流去完成.
希望下面代码符合你的要求package cn.jeffsr.csdn.test;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;public class UseProperties { /**
* 方法功能描述
* @param args 该变量代表什么
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
InputStream in = new FileInputStream("src/db.properties");
Properties pro = new Properties();
/*Map<String,String> map = new HashMap<String ,String>();
map.put("a name","a value");
map.put("b name","b value");
map.put("c name","c value");
setProperties("src/db.properties",map);*/
setProperties("src/db.properties","path","src/db.properties");
pro.load(in);
System.out.println(pro.getProperty("path"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void setProperties(String path,String key ,String value)
throws FileNotFoundException,IOException{
Map<String,String> map = new HashMap<String,String>();
map.put(key, value);
setProperties(path,map);
}
public static void setProperties(String path,Map map)
throws FileNotFoundException,IOException{
if(map.isEmpty())return;
Set keySet = map.keySet();
RandomAccessFile rand = new RandomAccessFile(path,"rw");
long point = rand.length();
for(Iterator i = keySet.iterator() ; i.hasNext() ; ) {
String key = (String)i.next();
rand.seek(point);
rand.writeBytes("\r\n" + key + "=" + map.get(key));
point = rand.length();
}
rand.close();
}
}ps:上面只是基本的实现插入新记录,可能还有挺多不足.关于您的意见