黑马程序员技术交流社区
标题:
关于Properties如何添加一个元素进去 还有添加进去以后是永久
[打印本页]
作者:
泮和顺
时间:
2012-3-20 09:15
标题:
关于Properties如何添加一个元素进去 还有添加进去以后是永久
如题关于Properties如何添加一个元素进去 还有添加进去以后是永久的吗??
作者:
张锐
时间:
2012-3-20 09:52
本帖最后由 张锐 于 2012-3-20 10:07 编辑
Properties继承自hashtable,当然可以用hashtable的put方法往里面添加自己定义的键值对了,不过这时候只在内存中有效。
System类中有一个getproperties的静态方法,可以获得系统中的配置,如果你手动往里面加的话也是只加在了内存中,重启后就没效了。
作者:
段浩亮
时间:
2012-3-20 10:02
Properties是集合中唯一和流相关联的 可以用load()方法从文件了加载键值对,也可以把添加进去的键值对用store()方法固化到文件中
作者:
李飞
时间:
2012-3-20 17:11
这个分情况
1. 如果说你的Properties只当做一个普通的Hashtable集合来用,只是暂时的存储数据的话,添加进去的数据就不是永久的,当你JVM重新启动的话数据就会消失
2. 但是如果说,你把数据写入到硬盘中,也就是我们经常做的一个properties文件中的话,那它就是永久的
作者:
朱亚安
时间:
2012-3-20 17:19
Properties添加一个元素如下代码:
//写入properties信息
public static void writeProperties(String filePath,String parameterName,String parameterValue) {
Properties prop = new Properties();
try {
I nputStream 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");
}
}
作者:
尹震
时间:
2012-3-20 17:36
本帖最后由 尹震 于 2012-3-20 17:49 编辑
System类中的方法和属性都是静态的.
//因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。
//那么可以通过map的方法取出该集合中的元素。
Properties prop = System.getProperties();
//进行遍历
Set<Object> objs = prop.keySet();
for(Object obj :objs){
System.out.println(obj.toString());
}
同样,Properties prop = System.setProperties("key","value");//可以进行添加
作者:
王利强
时间:
2012-3-20 22:30
这是我前段时间写的代码,你运行下,其中的System.setProperty("机主","liqiangwang");语句是添加元素的,运行结果中显示的很清楚。
import java.util.*;
class SystemDemo
{
public static void main(String[] args)
{
Properties prop=System.getProperties();
System.setProperty("机主","liqiangwang");
String name=System.getProperty("haha");
System.out.println("name"+name);
for(Object obj:prop.keySet())
{
String value=(String)prop.get(obj);
System.out.println(obj+"..."+value);
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2