java中有关于属性(Properties)的操作的相关函数:
1)、Properties p=newProperties();在进行操作之前首先得有一个属性对象。
2)、p.load(new FileInputStream(“a.properties”));之后加载一个需要被操作的文件(被加载的文件如果不存在那么就new一个和加载文件名及类型一样的文件)。
3)、可以使用getProperties()和setProperties()对属性进行操作。
4)、在进行一系列的操作之后需要保留操作的内容否则无效p.store(new FileOutputStream(“a.properties”))
其代码如下:
@Test
public void Demo1(){
Properties p=new Properties();
try {
p.load(new FileInputStream("a.properties"));
p.setProperty("dd", "23");
p.setProperty("aa", "34");//若properties里面有就更改他的值
p.getProperty("cc", "dd");//若properties里面有就返回对应的value没有就新设置一个key为c,value为dd的properties。
p.store(new FileOutputStream("a.properties"), null);//需要将所有更改的信息重新放入文件中否则无效。
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
自己通过代码建立一个属性表b.properties:
@Test
public void Demo2(){
Properties p=new Properties();
try {
p.setProperty("1"," a");
p.setProperty("2", "b");
p.setProperty("3", "c");
p.setProperty("4", "b");
File file=new File("b.properties");
p.store(new FileOutputStream(file), "This comment is nill,over!");//列表属性的描述
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
遍历b.properties属性表:其遍历的方式和Map的很像不过Map用的是iteration 而属性表用的是Enumeration。
@Test
//遍历属性表
public void Demo3(){
Properties p=new Properties();
try {
p.load(new FileInputStream("b.properties"));
Enumeration en=p.propertyNames();
while(en.hasMoreElements()){
String key=(String) en.nextElement();
String value=p.getProperty(key);
System.out.println(key+","+value);
}
System.out.println("line.separator");//分割线。
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}