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(); } }