在学习框架的时候相信各位都会知道,在搭建框架的时候经常会自己写配置文件。那么写这些配置文件有什么用呢?其实是为了给底层反射机制调用的。那么接下来用代码简单说明一下读取和写数据到配置文件中(没有用到反射机制)。前期数据准备如下:
package javatribe.fts.properties; import java.io.FileInputStream; import java.io.InputStream; import java.util.Enumeration; import java.util.Properties; /* * 读取config.properties配置文件中的值 */ public class ReadProperties { /** * @param args */ public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub //方式一读取数据 这种方式读取配置文件把配置文件放置在合适的位置 //InputStream ips=ReadProperties.class.getResourceAsStream("config.properties"); //方式二读取数据 InputStream ips=new FileInputStream("D:\\config.properties"); Properties ps=new Properties(); ps.load(ips); ips.close(); Enumeration enu=ps.propertyNames(); //方法一输出方式 ps.list(System.out); //方法二输出方式 while(enu.hasMoreElements()){ System.out.println("key=="+enu.nextElement()); } Enumeration enu1=ps.propertyNames(); while(enu1.hasMoreElements()){ System.out.println("value=="+ps.getProperty((String)enu1.nextElement())); } } }输出结果
-- listing properties -- --=listing properties -- fengtansong11=fengtansong11 jiangchunwan11=jiangchunwan11 key==-- key==fengtansong11 key==jiangchunwan11 value==listing properties -- value==fengtansong11 value==jiangchunwan11
package javatribe.fts.properties; import java.io.File; import java.io.PrintStream; import java.util.Properties; /* * 将数据写回到config.properties文件中 * 这是一种覆盖性写法,原来文件中的数据会丢失 */ public class WriteToProperties { /** * @param args */ public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub Properties p=new Properties(); p.setProperty("fengtansong","fengtansong"); p.setProperty("jiangchunwan","jiangchunwan"); PrintStream fW = new PrintStream(new File("d:\\config.properties")); p.list(fW ); } }
在D盘上会建立一个config.properties的文件,输出结果
-- listing properties -- jiangchunwan=jiangchunwan fengtansong=fengtansong
package javatribe.fts.properties; import java.io.FileInputStream; import java.io.InputStream; import java.util.Properties; /* * 读取config.xml文件中的值 */ public class RreadXml { /** * @param args */ public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub InputStream ips=RreadXml.class.getResourceAsStream("config.xml"); //方式二读取数据 //InputStream ips=new FileInputStream("D:\\config.xml"); Properties p=new Properties(); p.loadFromXML(ips); ips.close(); p.list(System.out); } }
输出结果如下:
-- listing properties -- koo=bar fu=baz
package javatribe.fts.properties; import java.io.File; import java.io.PrintStream; import java.util.Properties; public class WriteToXml { /** * @param args */ public static void main(String[] args) throws Exception{ // TODO Auto-generated method stub Properties p=new Properties(); p.setProperty("fengtansong","fengtansong"); p.setProperty("jiangchunwan","jiangchunwan"); PrintStream ps=new PrintStream(new File("d:\\config.xml")); p.storeToXML(ps,"configTest"); } }
在D盘上会自动建立config.xml文件输出结果如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>configTest</comment> <entry key="jiangchunwan">jiangchunwan</entry> <entry key="fengtansong">fengtansong</entry> </properties>以上就是简单的读取配置文件的方式