kooyee ‘s blog

开源软件, 众人努力的结晶, 全人类的共同财富
posts - 103, comments - 55, trackbacks - 0, articles - 66
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

【Java】properties的使用

Posted on 2007-10-05 23:15 kooyee 阅读(755) 评论(1)  编辑  收藏 所属分类: Java
由于经常从文本读写属性设置到代码中,所以利用java的properties类带取代对文件的操作。

首先建立properties文本文件并输入
Host_name = database name...
username = 用户名
password = 密码

读取properties文件的代码
Properties props =  new Properties();
        props.load(
new FileInputStream("./database.properties"));
        hostname 
= props.getProperty("Host_name");
        username 
= props.getProperty("User_name");
        password 
= props.getProperty("Password");

这样在code外部(在properties文本文件中)修改属性后, 通过properties导入到代码中对应的值里。

java properties 类
private FileOutputStream out;

  
/**

   * 根据传进的文件名载入文件

   * 
@param fileName String

   
*/


  
public PropertiesUtil(String fileName) {

    
this.fileName=fileName;

    File file 
= new File(fileName);

    
try {

      in 
= new FileInputStream(file);

      p 
= new Properties();

      
//载入文件

      p.load(in);

      in.close();

    }


    
catch (FileNotFoundException e) {

      System.err.println(
"配置文件config.properties找不到!!");

      e.printStackTrace();

    }


    
catch (Exception e) {

      System.err.println(
"读取配置文件config.properties错误!!");

      e.printStackTrace();

    }


  }


 

  
/**

   * 配置文件一律为config.propertities,并且统一放在web应用的根目录下。

   * 
@return String

   
*/


  
public static String getConfigFile(HttpServlet hs) {

 

    
return getConfigFile(hs,"config.properties");

  }


  
/**

   * 在servlet中使用,直接用this作为参数,HttpServlet类型

   * 根据配置文件名从当前web应用的根目录下找出配置文件

   * 
@param hs HttpServlet

   * 
@param configFileName String配置文件名字

   * 
@return String

   
*/


  
public static String getConfigFile(HttpServlet hs, String configFileName) {

    String configFile 
= "";

    ServletContext sc 
= hs.getServletContext();

    configFile 
= sc.getRealPath("/" + configFileName);

    
if (configFile == null || configFile.equals("")) {

      configFile 
= "/" + configFileName;

    }


    
return configFile;

  }


  
/**

   * jsp中用pageContext作参数

   * 
@param hs PageContext

   * 
@param configFileName String 配置文件名字

   * 
@return String

   
*/


  
public static String getConfigFile(PageContext hs, String configFileName) {

    String configFile 
= "";

    ServletContext sc 
= hs.getServletContext();

    configFile 
= sc.getRealPath("/" + configFileName);

    
if (configFile == null || configFile.equals("")) {

      configFile 
= "/" + configFileName;

    }


    
return configFile;

  }


 

  
/**

   * 列出所有的配置文件内容

   
*/


  
public void list() {

    p.list(System.out);

  }


 

  
/**

   * 指定配置项名称,返回配置值

   * 
@param itemName String

   * 
@return String

   
*/


  
public String getValue(String itemName){

    
return p.getProperty(itemName);

  }


 

  
/**

   * 指定配置项名称和默认值,返回配置值

   * 
@param itemName String

   * 
@param defaultValue String

   * 
@return String

   
*/


  
public String getValue(String itemName,

                         String defaultValue)
{

    
return p.getProperty(itemName,defaultValue);

  }


 

  
/**

   * 设置配置项名称及其值

   * 
@param itemName String

   * 
@param value String

   
*/


  
public void setValue(String itemName,String value){

    p.setProperty(itemName,value);

    
return;

  }


 

  
/**

   * 保存配置文件,指定文件名和抬头描述

   * 
@param fileName String

   * 
@param description String

   * 
@throws Exception

   
*/


  
public void saveFile(String fileName,String description)throws Exception{

    
try {

      File f
=new File(fileName);

      out

          
= new FileOutputStream(f);

      p.store(out, description);
//保存文件

      out.close();

    }


    
catch (IOException ex) {

      
throw new Exception

          (
"无法保存指定的配置文件:"+fileName);

    }


  }


 

  
/**

   * 保存配置文件,指定文件名

   * 
@param fileName String

   * 
@throws Exception

   
*/


  
public void saveFile(String fileName)

      
throws Exception {

    saveFile(fileName,
"");

  }


 

  
/**

   * 保存配置文件,采用原文件名

   * 
@throws Exception

   
*/


  
public void saveFile() throws Exception {

    
if(fileName.length()==0)

      
throw new Exception

          (
"需指定保存的配置文件名");

    saveFile(fileName);

  }


  
/**

   * 删除一个属性

   * 
@param value String

   
*/


  
public void deleteValue(String value){

    p.remove(value);

  }


  
/**

   * main method for test

   * 
@param args String[]

   
*/


  
public static void main(String[] args) {

    String file 
= "f:\\p.properties";

    PropertiesUtil pu 
= new PropertiesUtil(file);

    pu.list();

  }


}

评论

# re: 【Java】properties的使用  回复  更多评论   

2008-03-31 18:50 by 日月雨林
谢谢啊,最近正在学习如何使用properties呢

只有注册用户登录后才能发表评论。


网站导航: