博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
properties 的生成与解析配置文件
阅读量:4979 次
发布时间:2019-06-12

本文共 4560 字,大约阅读时间需要 15 分钟。

  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";    //路径视实际情况而定
  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 "">
    <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>

转载于:https://www.cnblogs.com/jefflau/archive/2012/05/09/3244396.html

你可能感兴趣的文章
day02
查看>>
gvim 配置Pydiction
查看>>
Linux安装指定mysql版本
查看>>
分布式锁的三种实现方式
查看>>
poj 2109 pow函数也能这么用?p的开n次方
查看>>
Oracle database link
查看>>
python调用shell小技巧
查看>>
TL431的几种常用用法
查看>>
js 经典闭包题目详解
查看>>
在项目中移除CocoaPods
查看>>
【洛谷】CYJian的水题大赛【第二弹】解题报告
查看>>
POJ 1703 Find them, Catch them【种类/带权并查集+判断两元素是否在同一集合/不同集合/无法确定+类似食物链】...
查看>>
L1-5. A除以B【一种输出格式错了,务必看清楚输入输出】
查看>>
Git一分钟系列--快速安装git客户端
查看>>
纵越6省1市-重新启动
查看>>
hive安装以及hive on spark
查看>>
jz1074 【基础】寻找2的幂
查看>>
Wannafly模拟赛5 A 思维 D 暴力
查看>>
【Linux开发】CCS远程调试ARM,AM4378
查看>>
Linux之ssh服务介绍
查看>>