waysun一路阳光

不轻易服输,不轻言放弃.--心是梦的舞台,心有多大,舞台有多大。踏踏实实做事,认认真真做人。

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  167 随笔 :: 1 文章 :: 64 评论 :: 0 Trackbacks

Configuration.java
来源于网络,本人进行了简单的修改,版权归属原作者,特此声明。

/**
*
*<p>Blog:http://www.cnweblog.com/nm1504</p>
*<p>E-mail:yyk1504@163.com</p>
*<p>创建时间:2008-3-13-下午03:11:32</p>
*<p>Copyright: (c)2008-3-13</p>
*/
package cn.com.mfsoft.config;

import java.io.*;
import java.net.URL;
import java.net.URLDecoder;
import java.util.*;

import org.apache.log4j.Logger;


import cn.com.mfsoft.config.ConfigurationException;

public class Configuration
{
  private Properties config=new Properties();//记录配置项
  private String fn=null;//记录配置文件名
  //此构造方法用于新建配置文件
  public Configuration()
  {

   String path="";
     try
     {
       //File file = new File("system.conf");
         URL u = this.getClass().getResource(this.getClass().getSimpleName()+".conf");
         path = u.getPath();
          //获得用户工程目录System.getProperty("user.dir")
          //path=(System.getProperty("user.dir").replace("\\", "/"))+"/model/Model_"+model_id+".snet";
    // path=URLDecoder.decode(path, "utf-8");

                System.out.println("11"+path);
                path=URLDecoder.decode(path, "utf-8");
                System.out.println("22"+path);
         FileInputStream fin = new FileInputStream(path);
         config.load(fin); //载入文件
         fin.close();
     }
     catch (IOException ex)
     {
         try
         {
    throw new ConfigurationException
      ("无法读取指定的配置文件:"+path);
   } catch (ConfigurationException e)
   {
    e.printStackTrace();
   }
     }
     fn=path;
  }
 
  public String getPrjRoot()
  {
      URL u = this.getClass().getResource(this.getClass().getSimpleName()+".conf");
      String str = u.getPath();
      if (str.indexOf(":") != -1)
          str = str.substring(1);// 在windows下面为/F:/MyPrj/WORK/post
      else
          str = str.substring(0);// 在Linux下面为/usr/local/apache...
      return str;
  }

  //从指定文件名读入配置信息
  public Configuration(String fileName)throws ConfigurationException
  {
    try
    {
        FileInputStream fin = new FileInputStream(fileName);
        config.load(fin); //载入文件
        fin.close();
    }
    catch (IOException ex)
    {
         throw new ConfigurationException
          ("无法读取指定的配置文件:"+fileName);
    }
    fn=fileName;
  }

 

  //指定配置项名称,返回配置值
  public String getValue(String itemName)
  {
   String value=getValue("language","chinese");
   String st="";

   if(value.equals("chinese"))
   {

  st=toGb(config.getProperty(itemName));
   }
   else
   {
    st=config.getProperty(itemName);
   }
      return st;//config.getProperty(itemName);
  }

  public  String getValue2(String ItemName)
  {
   String value="";
  try
  {
    String path="";
    path=getClass().getResource("/system.conf").getPath().substring(1);
    path=URLDecoder.decode(path, "utf-8");
    System.out.println();
    Configuration config= new Configuration(path);
    value=config.getValue(ItemName);
  } catch (Exception e)
  {
   e.printStackTrace();
  }
    return value;
  }

  //指定配置项名称和默认值,返回配置值
  public String getValue(String itemName,
                         String defaultValue)
  {
    return config.getProperty(itemName,defaultValue);
  }

  //设置配置项名称及其值
  public void setValue(String itemName,String value){
    config.setProperty(itemName,value);
    return;
  }

  //保存配置文件,指定文件名和抬头描述
  public void saveFile(String fileName,String description)throws ConfigurationException
  {
    try {
      FileOutputStream fout
          = new FileOutputStream(fileName);
      config.store(fout, description);//保存文件
      fout.close();
    }
    catch (IOException ex) {
      throw new ConfigurationException
          ("无法保存指定的配置文件:"+fileName);
    }
  }

  //保存配置文件,指定文件名
  public void saveFile(String fileName)throws ConfigurationException
  {
    saveFile(fileName,"");
  }

  //保存配置文件,采用原文件名
  public void saveFile() throws ConfigurationException {
    if(fn.length()==0)
      throw new ConfigurationException
          ("需指定保存的配置文件名");
    saveFile(fn);
  }

  public static String toGb(String uniStr)
  {
      String gbStr = "";
      if(uniStr == null)
      {
         uniStr = "";
      }
      try
      {
       byte[] tempByte = uniStr.getBytes("ISO8859_1");
       gbStr = new String(tempByte,"GB2312");
      }
      catch(Exception ex)
      {
      }
      return gbStr;
  }
  public static void main(String[]args)
  {
  }
}


ConfigurationException.java

/**
*
*<p>Blog:http://www.cnweblog.com/nm1504</p>
*<p>E-mail:yyk1504@163.com</p>
*<p>创建时间:2008-3-13-下午03:12:29</p>
*<p>Copyright: (c)2008-3-13</p>
*/
package cn.com.mfsoft.config;

public class ConfigurationException extends Exception
{
   public ConfigurationException()
   {
   
   }
   public ConfigurationException(String msg)
   {
        super(msg);
   }
 }


ReadConfig.java

/**
**<p>Blog:http://www.cnweblog.com/nm1504</p>
*<p>E-mail:yyk1504@163.com</p>
*<p>创建时间:2008-3-13-下午03:14:24</p>
*<p>Copyright:  (c)2008-3-13</p>
*/
package cn.com.mfsoft.config;

import java.net.URL;


public class ReadConfig
{
  public static void main(String[] args)
  {
    try
    {
     Configuration config=new Configuration();
      //读取指定文件
     ReadConfig rc=new ReadConfig();
    
        System.out.println("::::::;"+rc.getPrjRoot());
  
     try{
 
 /*
         System.out.println(new String(config.getValue("Max_Users_Count")));//5

         System.out.println(new String(config.getValue("Max_Users_Count").getBytes(),"GB2312"));//6

         System.out.println(new String(config.getValue("Max_Users_Count").getBytes(),"ISO8859_1"));//7

         System.out.println(new String(config.getValue("Max_Users_Count").getBytes("GB2312")));//8

         System.out.println(new String(config.getValue("Max_Users_Count").getBytes("GB2312"),"GB2312"));//9

         System.out.println(new String(config.getValue("Max_Users_Count").getBytes("GB2312"),"ISO8859_1"));//10

         System.out.println(new String(config.getValue("Max_Users_Count").getBytes("UTF-8")));//11

         System.out.println(new String(config.getValue("Max_Users_Count").getBytes("UTF-8"),"GB2312"));//12

         System.out.println(new String(config.getValue("Max_Users_Count").getBytes("ISO8859_1"),"UTF-8"));//13
        
         System.out.println(toGb(config.getValue("Max_Users_Count")));*/

       }

       catch(Exception e)
       {
             e.printStackTrace();
       }
    }
    catch(Exception ex)
    {
          ex.printStackTrace();
    }
   
   
  }
 


  public String getPrjRoot()
  {
      URL u = this.getClass().getResource(this.getClass().getSimpleName()+".conf");
      String str = u.getPath();
      if (str.indexOf(":") != -1)
          str = str.substring(1);// 在windows下面为/F:/MyPrj/WORK/post
      else
          str = str.substring(0);// 在Linux下面为/usr/local/apache...
      return str;
  }

 
}


SetConfig.java

/**
*
*<p>Blog:http://www.cnweblog.com/nm1504</p>
*<p>E-mail:yyk1504@163.com</p>
*<p>创建时间:2008-3-13-下午03:13:20</p>
*<p>Copyright:  (c)2008-3-13</p>
*/
package cn.com.mfsoft.config;

import cn.com.mfsoft.config.ConfigurationException;//包含这个包方能使用配置类

public class SetConfig {
  public static void main(String[] args) {
    try
    {
      Configuration config = new Configuration();
      //设置一些属性值
      config.setValue("language", "chinese");
      config.setValue("Max_Users_Count", "50");
      config.setValue("Max_OpenedFile_Count", "38");
      //保存文件
      config.saveFile("d:/system.conf",
                      "Sytem Global Configuration");
    }
    catch (ConfigurationException ex) {
      //捕获我们自定义的异常
      ex.printStackTrace();
    }
  }
}


 

posted on 2008-06-20 08:45 weesun一米阳光 阅读(4924) 评论(0)  编辑  收藏 所属分类: 总结备用

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


网站导航: