文件处理----Properties文件处理

  properties是一种属性文件,这种文件以key=value格式存储内容,代码中可以使用Properties类来读取这个文件,然后得到数据。

  当配置文件用,由于难以表达层次,复杂点可以使用xml做配置。

通俗点讲就相当于定义一个变量,在这个文件里面定义这些变量的值,在程序里面可以调用这些变量,好处就是,如果程序中的参数值需要变动,直接来改这个.properties文件就可以了,不用去修改源代码。


  Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方,就是它的键和值都是字符串类型。

  Properties类表示一组持久的属性。Properties可以保存到流中或从流中加载。属性列表中的每个键及其对应的值都是一个字符串。

 

Properties主要方法:

(1)loadload(InputStream in);--从输入字节流读取属性列表(键和元素对)

load(Reader reader);--从简单的线性格式从输入字符流读取属性列表(关键字和元素对)

(2)store

store(OutputStream out,String comments);--将此属性列表(键和元素对)写入此Properties表中,以适合于使用load(InputStream)方法加载到Properties表中的格式输出流。

comments不为空,保存后的属性文件第一行会是#comments,表示注释信息;如果为空则没用注释信息。注释信息后面是属性文件的当前保存时间信息。

store(writer write,String comments);

(3)getProperty(String key)和setProperty(String key,String value)

第一个是  使用此属性列表中指定的键搜索属性。

第二个是  致电Hashtable方法put,也就是设置键值(一个新的键值对)。

(4)clear();

清除所有装载的键值对,该方法在基类中提供。

 1 package a.one;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.FileOutputStream;
 5 import java.util.Properties;
 6 
 7 public class PropertiesTest2 {
 8     public static void main(String[] args) throws Exception {
 9         //一个空的属性列表
10         Properties p=new Properties();
11         System.out.println(p);
12         FileInputStream in=new FileInputStream("config/c.properties");
13         p.load(in);//加载属性列表
14         System.out.println(p);
15         System.out.println(p.getProperty("name"));//得到某属性值
16         System.out.println("===========================");
17         FileOutputStream out=new FileOutputStream("config/d.properties");
18         p.setProperty("key", "value");
19         p.store(out, "Annotation");//注释
20     }
21 }

结果:

{age=30, name=taeyeon, song=four seasons}
taeyeon
===========================

d.properties:

1 #Annotation
2 #Wed Apr 17 13:03:52 GMT+08:00 2019
3 age=30
4 name=taeyeon
5 key=value
6 song=four seasons

c.properties:

1 name=taeyeon
2 age=30
3 song=four seasons

 

总结:Java的properties文件需要放到classpath下面,这样程序才能读取到,有关classpath实际上就是Java类或者库的存放路径,在Java工程中,properties放到class文件这一块。在web应用中,最简单的方法就是放到web应用的WEB-INF\classes目录下即可,也可以放到其他文件夹下面,这时候需要在设置classpath环境变量的时候,将这个文件的路径加到classpath变量中,这样也可以读取到。


 

posted @ 2019-04-17 14:17  微微亮  阅读(314)  评论(0编辑  收藏  举报