欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

properties生成与解析配置文件 - 六月

更新时间: 2015-05-03 00:00:00 责任编辑: Author_N12

 

 

  1. Properties类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。可用来读取和设置配置文件如.xml文件,.properties文件
  2. 实例如下:
  3. package test;   
  4.   
  5. import java.io.File;   
  6. import java.io.FileInputStream;   
  7. import java.io.FileNotFoundException;   
  8. import java.io.FileOutputStream;   
  9. import java.io.IOException;   
  10. import java.io.InputStream;   
  11. import java.util.InvalidPropertiesFormatException;   
  12. import java.util.Properties;   
  13.   
  14. public class TestProperties {   
  15.     public static final String DB_DRIVERNAME="driverName";   
  16.     public static final String DB_URL="url";   
  17.     public static final String DB_USERNAME="username";   
  18.     public static final String DB_PWD="pwd";   
  19.     public static final String SYSTEMFILE_PROPERTIES="webapps/WEB-INF/classes/test/tp.properties";    //路径视实际情况而定,参加令一篇文章 http://liujunhg.iteye.com/blog/1039168 (java中路径的问题)
  20.     public static final String SYSTEMFILE_PROPERTIES2="webapps/WEB-INF/classes/test/tp2.properties";   
  21.     public static final String SYSTEMFILE_XML="webapps/WEB-INF/classes/test/tp.xml";   
  22.     public static final String SYSTEMFILE_XML2="webapps/WEB-INF/classes/test/tp2.xml";   
  23.     protected Properties properties=null;   
  24.     public TestProperties(){   
  25.         //this(SYSTEMFILE_PROPERTIES);   
  26.     }   
  27.     private TestProperties(String fileName){   
  28.            
  29.         //loadProperties(SYSTEMFILE_PROPERTIES);   
  30.            
  31.         this.loadXML(SYSTEMFILE_XML);   
  32.     }   
  33.     //解析properties文件   
  34.     public void loadProperties(String fileName){   
  35.         File file=new File(fileName);   
  36.         InputStream in=null;   
  37.         properties=new Properties();   
  38.   
  39.         if(file.exists()){   
  40.             try {   
  41.                 in=new FileInputStream(file);   
  42.                 properties.load(in);   
  43.             } catch (FileNotFoundException e) {   
  44.   
  45.                 e.printStackTrace();   
  46.             } catch (IOException e) {
  47.                 e.printStackTrace();   
  48.             }finally{   
  49.                 if(in!=null){   
  50.                     try {   
  51.                         in.close();   
  52.                     } catch (IOException e) {   
  53.  
  54.                         e.printStackTrace();   
  55.                     }   
  56.                     in=null;   
  57.                 }   
  58.             }   
  59.   
  60.         }else{   
  61.             System.out.println("文件不存在!");   
  62.         }   
  63.   
  64.     }   
  65.        
  66.     //解析XML文件   
  67.     public void loadXML(String filename){   
  68.         File file=new File(SYSTEMFILE_XML);   
  69.         InputStream in=null;   
  70.         properties=new Properties();   
  71.            
  72.         if(file.exists()){   
  73.             try {   
  74.                 in=new FileInputStream(file);   
  75.                 properties.loadFromXML(in);   
  76.             } catch (FileNotFoundException e) {   
  77.                 e.printStackTrace();   
  78.             } catch (InvalidPropertiesFormatException e) {   
  79.  
  80.                 e.printStackTrace();   
  81.             } catch (IOException e) {   
  82.                 if(in!=null){   
  83.                     try {   
  84.                         in.close();   
  85.                     } catch (IOException e1) {   
  86.                         e1.printStackTrace();   
  87.                     }   
  88.                     in=null;   
  89.                 }   
  90.                 e.printStackTrace();   
  91.             }   
  92.                
  93.         }else{   
  94.             System.out.println("文件不存在!");   
  95.         }   
  96.     }   
  97.        
  98.     //设置properties文件   
  99.     public void storeProperties(){   
  100.         properties=new Properties();   
  101.         properties.setProperty(DB_DRIVERNAME, "oracle.jdbc.driver.OracleDriver");   
  102.         properties.setProperty(DB_URL, "jdbc:oracle:thin@127.0.0.1:1521:orcl");   
  103. //      properties.setProperty(DB_USERNAME, "test2");   
  104. //      properties.setProperty(DB_PWD, "test2");   
  105.         File file=new File(SYSTEMFILE_PROPERTIES2);   
  106.         FileOutputStream fo=null;   
  107.  
  108.         try {   
  109.             fo=new FileOutputStream(file);   
  110.             properties.store(fo, "test");   
  111.         } catch (FileNotFoundException e) {   
  112.             e.printStackTrace();   
  113.         } catch (IOException e) {    
  114.             e.printStackTrace();   
  115.         }finally{   
  116.             if(fo!=null){   
  117.                 try {   
  118.                     fo.close();   
  119.                 } catch (IOException e) {  
  120.                     e.printStackTrace();   
  121.                 }   
  122.                 fo=null;   
  123.             }   
  124.         }   
  125.            
  126.     }   
  127.        
  128.     //设置XML文件   
  129.     public void storeXML(){   
  130.         properties=new Properties();   
  131.         properties.setProperty(DB_DRIVERNAME, "oracle.jdbc.driver.OracleDriver");   
  132.         properties.setProperty(DB_URL, "jdbc:oracle:thin@127.0.0.1:1521:orcl");   
  133.         properties.setProperty(DB_USERNAME, "test2");   
  134.         properties.setProperty(DB_PWD, "test2");   
  135.         File file=new File(SYSTEMFILE_XML2);   
  136.         FileOutputStream fo=null;   
  137.         try {   
  138.             fo=new FileOutputStream(file);   
  139.             properties.storeToXML(fo, "conn");   
  140.         } catch (FileNotFoundException e) {  
  141.             e.printStackTrace();   
  142.         } catch (IOException e) {  
  143.             e.printStackTrace();   
  144.         }finally{   
  145.             if(fo!=null){   
  146.                 try {   
  147.                     fo.close();   
  148.                 } catch (IOException e) {  
  149.                     e.printStackTrace();   
  150.                 }   
  151.                 fo=null;   
  152.             }   
  153.         }   
  154.     }   
  155.     public String getDrivername(){   
  156.         return (String)properties.getProperty(DB_DRIVERNAME);   
  157.     }   
  158.     public String getURL(){   
  159.   
  160.         return (String)properties.getProperty(DB_URL);   
  161.     }   
  162.     public String getName(){   
  163.         return (String)properties.getProperty(DB_USERNAME);   
  164.     }   
  165.     public String getPWD(){   
  166.         return (String)properties.getProperty(DB_PWD);   
  167.     }   
  168.   
  169.     public static void main(String args[]){   
  170.         TestProperties tp=new TestProperties();   
  171. //      System.out.println(tp.getDrivername());   
  172. //      System.out.println(tp.getURL());   
  173. //      System.out.println(tp.getName());   
  174. //      System.out.println(tp.getPWD());   
  175.         //tp.storeXML();   
  176.         tp.storeProperties();   
  177.   
  178.     }   
  179. }  
  180. tp.properties:
  181. url=jdbc:oracle:thin@127.0.0.1:1521:orcl
    driverName=oracle.jdbc.driver.OracleDriver
    username=123
    pwd=123
  182. tp.xml
  183. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
    <comment>Hi</comment>
    <entry key="url">jdbc:oracle:thin@127.0.0.1:1521:orcl</entry>
    <entry key="driverName">oracle.jdbc.driver.OracleDriver</entry>
    <entry key="username">123</entry>
    <entry key="pwd">123</entry>
    </properties>
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2015-05-03 00:00:00
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/1365305/
本文WWW.DOC100.NET DOC100.NET版权所有。