java:Properties属性文件概念
在java之前的国际化程序中提出了一个属性文件的概念,属性文件的后缀是:*。properties,那么在java中提供了意个属性文件的专门操作类,Properties,此类的定义如下:
public class Properties extends Hashtable<Object, Object>
此类是Hashtable的子类,所有属性都是字符串形式存入,此类的常用方法:
setProperties(String key, String value):设置属性
getProperties(String key):获取属性
getProperties(String key, String defaulValue):获取属性,属性不存在返回默认值
list(Printtream out):输出全部属性
store(OuputStream out, String comments):将属性内容保存在普通文件中
storeToXML(OutputStreas os, String comment):将内容以XML格式存放
load(InputStream, inStream):从普通文件中读取属性
loadFromXML(inputStream in): 从xml格式的文件中读取属性内容
设置属性、获取属性
//设置文件 Properties pro = new Properties(); pro.setProperty("height", "175"); pro.setProperty("weight", "68"); pro.setProperty("size", "18"); //获取属性 System.out.println( pro.getProperty("height") ); //获取属性,如果不存在取默认属性 System.out.println( pro.getProperty("header", "noting") );
结果:
175
noting
写入属性文件:
Properties p = new Properties(); p.setProperty("a", "java"); p.setProperty("b", "c"); p.setProperty("c", "python"); p.setProperty("d", "c++"); p.setProperty("e", "php"); try { p.store(new FileOutputStream( new File("E:"+File.separator + "work" + File.separator + "java" + File.separator + "laguage.property" ) ), "属性文件"); } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); }
存文件的的内容:
#\u5C5E\u6027\u6587\u4EF6#Sat Sep 16 08:22:24 CST 2017b=ca=javae=phpd=c++c=python
获取属性:
// TODO 自动生成的方法存根 Properties p = new Properties(); try { p.load(new FileInputStream( new File("E:"+File.separator + "work" + File.separator + "java" + File.separator + "laguage.property") )); } catch (FileNotFoundException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } System.out.println(p.getProperty("a"));
得出结果:
java