(1)
java.util.Properties
通过这个文件,可以获得属性和设置存储属性 感觉有点像session,存进去,读出来,但是这个是永久保存的介质 FileInputStream fis=new FileInputStream("文件名");
Properties props =new Properties(); props.load(fis); out.println("===="+props.getProperty("一个属性名")); fis.close(); (2)我们经常使用.properties文件作为配置文件,所以大部分的时候,我们只是load,然后读取其配置属性.
但是,有的时候,我们可能也需要动态的更新配置,那么怎么来实现对properties配置文件的更新操作呢. 这个问题其实很简单,我们先看读操作: Properties p; try { p = PropertiesReader.readProperties("org/zy/common/parse/util/config.properties"); 先载入配置文件, String javaHome = p.getProperty("JAVA_HOME")); 通过getProperty()方法和关键字来实现属性的检索和返回. 那么,如何写? 多的时候我们知道,我们首先要读我们的配置文件流,那么写的时候,我们也要先得到一个写文件流. 由于是文本文件,所以我们使用FileWriter. String path =p.getClass().getResource("/org/zy/common/parse/util/config.properties").getPath(); Writer w=new FileWriter(path); 此时,我们已经准备好了,要把更新的属性写到哪里,那么,如何写? 有的时候,可能你是要更新某个属性,有的时候,可能你要添加一个属性. 可能你会使用w.write()方法来实现写操作,没有问题,但是,你以前的配置就完全没有了,如果想保留的话,就只有完全写一个新的文件.这中方法,对于更新某个属性的值来说就稍微的麻烦一点.当然,可以用正则表达式来实现. 其实properties本身也给我们提供了方法. p.setProperty("bb", "bb update string");
p.store(w,"bb"); w.close(); 我们可以读属性,就可以设置属性. setProperty()方法就可以实现. 但是此时的更新只是在内存中,并没有写如文件.要写入文件的话,就要调用store()方法.此时,我们关闭输出流的话,数据已经持久化到了文件. setProperty()中,如果你的属性是文件里面没有的属性,那么,系统会进行追加操行,如果你的属性,在系统中已经存在,那么系统就会进行更新操作. 例如: 你的配置文件是: a=a b=b c=c 那么,如果你 p.setProperty("d","d"); 那么,结果就是: a=a b=b c=c d=d 如果你执行 p.setProperty("a","d"); 那么,结果就是: a=d b=b c=c |
|