properties文件讀寫本身寫的方法

package com.oumasoft.bstmanage.ibatis.dao;
/**
 * 描述:數據庫初始化基本類
 * 
 * @做者 王羣
 * @建立日期 2010-04-08
 * @修改人 xxx
 * @修改日期 xxx
 * @檢查人 xxx
 * @檢查日期 xxx
 */
import java.sql.SQLException;

import com.ibatis.sqlmap.client.SqlMapClient;
import com.oumasoft.bstmanage.ibatis.SqlMapConfig;
import com.oumasoft.bstmanage.ibatis.data.JsgnPo;
import com.oumasoft.bstmanage.ibatis.data.Test;

import java.util.*;
import org.w3c.dom.*;
import java.io.*;
import javax.servlet.http.HttpServletRequest;
import javax.xml.transform.stream.*;
import org.w3c.dom.*;
import javax.xml.transform.*;
import javax.xml.parsers.*;
import javax.xml.transform.dom.*;
import org.apache.log4j.Logger;
import com.oumasoft.bstmanage.ibatis.dao.ClientDao;

public class InitDBDao{
 static Logger logger = Logger.getLogger(ClientDao.class.getName());
 static SqlMapClient sqlMap = null;
 private static File file = null;//讀寫文件
 private static DocumentBuilderFactory factory = null;
 private static DocumentBuilder builder = null;

 /**
  * 修改properties文件,參數是map鍵值集合,根據鍵修改值,若是沒有鍵值對就建立
  * @param filePath 文件路徑
  * @param keyVal 內容參數
  * @param over是否覆蓋,true的話就覆蓋,false的話就是更新
  * @return
  */
 public static boolean writeProperties(String filePath, Map<String, String> keyVal ,boolean over) {
  boolean flag = false;
  Properties props = new Properties();
  InputStream ips = null;
  try {
   ips = new BufferedInputStream(new FileInputStream(filePath));
   props.load(ips);
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } finally {
   try {
    ips.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    logger.error("輸入關閉出錯");
   }
   
  }
  

  OutputStream fos = null;
  if (over) {
   // 將新添加的內容覆蓋原來的內容
   try {
    fos = new FileOutputStream(filePath);
    // 將keys轉換成數組
    // 將鍵值逐一添加到property中
    for (Object str :  keyVal.keySet().toArray()) {
     props.setProperty(str.toString(), keyVal.get(str));
    }
    props.store(fos, "set");
    flag = true;
   } catch (IOException e) {
    e.printStackTrace();
   } finally {
    try {
     fos.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     logger.error("輸出流沒法關閉");
    }
   }
  }else{
   try {
    fos = new FileOutputStream(filePath);
    for (Object key : keyVal.keySet().toArray()) {
     props.setProperty(key.toString(), keyVal.get(key).toString());
    }   
     props.store(fos,"");
     flag = true;
   } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   finally {
    try {
     fos.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     logger.error("輸出流關閉出錯");
    }
   }
  }
  return flag;
 }
 
 
 
 
 /**
  * properties文件按鍵得值
  * 
  * @param filePath properties 文件的路徑
  * @param key 要取值的鍵
  * @return 獲得的值
  */
 public static String readValue(String filePath, String key) {
  Properties props = new Properties();
  InputStream ips = null;
  try {
   ips = new BufferedInputStream(new FileInputStream(filePath));
   props.load(ips);
   String value = props.getProperty(key);
   return value;
  } catch (FileNotFoundException e) {
   e.printStackTrace();
   return null;
  } catch (IOException e) {
   e.printStackTrace();
   return null;
  } finally {
   try {
    if(null != ips){     
     ips.close();
    }
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
 }
 

}
相關文章
相關標籤/搜索