A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如题关于Properties如何添加一个元素进去 还有添加进去以后是永久的吗??

6 个回复

倒序浏览
本帖最后由 张锐 于 2012-3-20 10:07 编辑

Properties继承自hashtable,当然可以用hashtable的put方法往里面添加自己定义的键值对了,不过这时候只在内存中有效。
System类中有一个getproperties的静态方法,可以获得系统中的配置,如果你手动往里面加的话也是只加在了内存中,重启后就没效了。
回复 使用道具 举报
Properties是集合中唯一和流相关联的 可以用load()方法从文件了加载键值对,也可以把添加进去的键值对用store()方法固化到文件中
回复 使用道具 举报
这个分情况
1.    如果说你的Properties只当做一个普通的Hashtable集合来用,只是暂时的存储数据的话,添加进去的数据就不是永久的,当你JVM重新启动的话数据就会消失
2.    但是如果说,你把数据写入到硬盘中,也就是我们经常做的一个properties文件中的话,那它就是永久的
回复 使用道具 举报
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: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");//可以进行添加
回复 使用道具 举报
这是我前段时间写的代码,你运行下,其中的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);
                }
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马