posts - 1,comments - 1,trackbacks - 0
 

先提出下面两个问题:
    问题1:采用什么方式来保存软件配置信息
    问题2:怎么保存配置信息
下面就以上两个问题展开讲述:
        1.保存配置文件的方法有很多种
            A.将配置信息保存在注册表中(如果保存在注册表中对于java的跨平台性是一个破坏,因为不同操作系统的所谓注册表的存储方式是不同的)
            B.将配置信息保存在任意类型的文件中,由于Java里有专门提供用于对配置文件读写的类库,所以我们在这里介绍properties类型的配置文件,
                注意这里properties只是一个大家公认的配置文件后缀而已,没有什么特别的意义!

    (当然还有其他方法,在这里主要介绍properties类型的配置文件)
 2.对配置信息的操作无非就两种,从配置文件中读取信息,并将信息赋值给程序中的相应变量,还有就是当软件运行到某一个特定的时候,手动或自

动将软件中的某些信息写入到配置文件中,以便于以后的调用.为了方便的对properties类型的配置文件进行操作,在这里介绍一个Java提供的

一个类:Properties大家可以查看API以了解此类的详细信息.
    对于最简单的应用,这里只用到Properties中的三个方法:
    1.void load(InputStream inStream)从输入流中读取属性列表(键和元素对)。这个inStream可以有多种取得的方法,这里只介绍一种通过
        ClassName.class.getClassLoader().getResourceAsStream()来取得properties文件.通常:ClassName.class.getClassLoader ().getResourceAsStream(““)取得的是
        WEB-INF的下级目录,比如ClassName.class.getClassLoader().getResourceAsStream(“db.properties“).在Tomcat中,可以通过增加”../”来取得上层目录
        ,即WEB-INF目录,这样就可以把properties放在WEB-INF中统一管理。但是WLS不识别”../”。另外一种土办法,就是不返回classLoader,
        直接ClassName.class.getResourceAsStream()。然后通过多个”../”(小于6个)来返回相应的上级目录。当然,如果类扩展了HttpServlet,可以通过
        getServletContext().getRealPath("/")来取得Web部署目录的绝对路径。 
    2. String getProperty(String key)用指定的键在此属性列表中搜索属性。
    3. Object setProperty(String key, String value)调用 Hashtable 的方法 put。
    4.  void   store(OutputStream out, String comments) 以适合使用 load(InputStream) 方法加载到Properties 表中的格式,将此Properties 表中的属性列表(键和元素对)
        写入输出流。


在读之前必须要用1方法得到输入流,在写之前必须先建一个到配置文件的输出流作为4的参数,写完后用4方法
处于Singleton设计模式的考虑,建议把整个对配置文件的操作写成一个类,并且将所有变量方法全部设置为静态



posted on 2008-12-23 15:27 FINDER 阅读(2199) 评论(0)  编辑  收藏 所属分类: J2SE

只有注册用户登录后才能发表评论。


网站导航: