JAVA操作属性文件,可进行读、写、更改

JAVA
[java] view plain copy
  1.      
  2. JAVA操作属性文件  
  3. /* 
  4. 操作属性文件,可以为我们的程序带来更方便的移植性,下面是一个示例,可以读、写、更改属性 
  5. 读采用了两种方式,一种是采用Properties类,另外一种是采用资源绑定类ResourceBundle类, 
  6. 下面是源程序,里面有详细的注释: 
  7. */  
  8. import java.io.FileInputStream;  
  9. import java.io.FileOutputStream;  
  10. import java.util.Properties;  
  11. import java.util.ResourceBundle;  
  12. /** 
  13.  *对属性文件(xx.properties)的操作 
  14.  *注:属性文件一定要放在当前工程的根目录下,也就是放在与src目录在同一个目录下(我的JDevelop 
  15.  *是这样的) 
  16.  */  
  17. publicclass OperatePropertiesFile {  
  18.     public OperatePropertiesFile() {  
  19.     }  
  20.     /** 
  21.      *采用Properties类取得属性文件对应值 
  22.      *@parampropertiesFileNameproperties文件名,如a.properties 
  23.      *@parampropertyName属性名 
  24.      *@return根据属性名得到的属性值,如没有返回"" 
  25.      */  
  26.     private String getValueByPropertyName(String propertiesFileName,String propertyName) {  
  27.         String s="";  
  28.         Properties p=new Properties();//加载属性文件读取类  
  29.         FileInputStream in;  
  30.         try {  
  31.             //propertiesFileName如test.properties  
  32.             in = new FileInputStream(propertiesFileName);//以流的形式读入属性文件  
  33.             p.load(in);//属性文件将该流加入的可被读取的属性中  
  34.             in.close();//读完了关闭  
  35.             s=p.getProperty(propertyName);//取得对应的属性值  
  36.         } catch (Exception e) {  
  37.             e.printStackTrace();  
  38.         }  
  39.         return s;  
  40.     }  
  41.     /** 
  42.      *采用ResourceBundel类取得属性文件对应值,这个只能够读取,不可以更改及写新的属性 
  43.      *@parampropertiesFileNameWithoutPostfixproperties文件名,不带后缀 
  44.      *@parampropertyName属性名 
  45.      *@return根据属性名得到的属性值,如没有返回"" 
  46.      */  
  47.     private String getValueByPropertyName_(String propertiesFileNameWithoutPostfix,String propertyName) {  
  48.         String s="";  
  49.         //如属性文件是test.properties,那此时propertiesFileNameWithoutPostfix的值就是test  
  50.         ResourceBundle bundel = ResourceBundle.getBundle(propertiesFileNameWithoutPostfix);  
  51.         s=bundel.getString(propertyName);  
  52.         return s;  
  53.     }  
  54.     /** 
  55.      *更改属性文件的值,如果对应的属性不存在,则自动增加该属性 
  56.      *@parampropertiesFileNameproperties文件名,如a.properties 
  57.      *@parampropertyName属性名 
  58.      *@parampropertyValue将属性名更改成该属性值 
  59.      *@return是否操作成功 
  60.      */  
  61.     privateboolean changeValueByPropertyName(String propertiesFileName,String propertyName,String propertyValue) {  
  62.         boolean writeOK=true;  
  63.         Properties p=new Properties();  
  64.         FileInputStream in;  
  65.         try {  
  66.             in = new FileInputStream(propertiesFileName);  
  67.             p.load(in);//  
  68.             in.close();  
  69.             p.setProperty(propertyName,propertyValue);//设置属性值,如不属性不存在新建  
  70.             //p.setProperty("testProperty","testPropertyValue");  
  71.             FileOutputStream out=new FileOutputStream(propertiesFileName);//输出流  
  72.             p.store(out,"Just Test");//设置属性头,如不想设置,请把后面一个用""替换掉  
  73.             out.flush();//清空缓存,写入磁盘  
  74.             out.close();//关闭输出流  
  75.         } catch (Exception e) {  
  76.             e.printStackTrace();  
  77.         }  
  78.         return writeOK;  
  79.     }  
  80.     publicstaticvoid main(String[] args) {  
  81.         OperatePropertiesFile operatePropertiesFile = new OperatePropertiesFile();  
  82.         operatePropertiesFile.changeValueByPropertyName("db.properties","DBLocation","D://Palfinger//palfinger.mdb");  
  83.     }  
  84. }  
  85. 假如有一个属性文件db.properties如下:    
  86. DBLocation=D/://Palfinger//palfinger.mdb  
  • 发表于 2017-11-13 17:07
  • 阅读 ( 1274 )
  • 分类:Java

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
- Nightmare

33 篇文章

作家榜 »

  1. 威猛的小站长 124 文章
  2. Jonny 65 文章
  3. 江南烟雨 36 文章
  4. - Nightmare 33 文章
  5. doublechina 31 文章
  6. HJ社区-肖峰 29 文章
  7. 伪摄影 22 文章
  8. Alan 14 文章