java讀取propertie配置文件

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jcoapp;

/**
 *
 * @author luolai
 */
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.jar.JarFile;

/**
 *
 */
/**
 * 讀取properties文件
 *
 * @author Qutr
 * 
*/
public class Configuration {

    private Properties propertie;
    private FileInputStream inputFile;
    private FileOutputStream outputFile;

    /**
     *
     */
    /**
     * 初始化Configuration類
     */
    public Configuration() {
        propertie = new Properties();
    }

    /**
     *
     */
    /**
     * 初始化Configuration類
     *
     * @param filePath 要讀取的配置文件的路徑+名稱
     */
    public Configuration(String filePath) {
        propertie = new Properties();
        try {
            inputFile = new FileInputStream(filePath);
            propertie.load(inputFile);
            inputFile.close();
        } catch (FileNotFoundException ex) {
            System.out.println("讀取屬性文件--->失敗!- 原因:文件路徑錯誤或者文件不存在");
            ex.printStackTrace();
        } catch (IOException ex) {
            System.out.println("裝載文件--->失敗!");
            ex.printStackTrace();
        }
    }//end ReadConfigInfo(...)
        /*
     * 重載函數,得到key的值
     *
     * @param key 取得其值的鍵 @return key的值
     */

    public String getValue(String key) {
        if (propertie.containsKey(key)) {
            String value = propertie.getProperty(key);//得到某一屬性的值
            return value;
        } else {
            return "";
        }
    }//end getValue(...)

    /**
     *
     */
    /**
     * 重載函數,得到key的值
     *
     * @param fileName properties文件的路徑+文件名
     * @param key 取得其值的鍵
     * @return key的值
     */
    public String getValue(String fileName, String key) {
        try {
            String value = "";
            inputFile = new FileInputStream(fileName);
            propertie.load(inputFile);
            inputFile.close();
            if (propertie.containsKey(key)) {
                value = propertie.getProperty(key);
                return value;
            } else {
                return value;
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return "";
        } catch (IOException e) {
            e.printStackTrace();
            return "";
        } catch (Exception ex) {
            ex.printStackTrace();
            return "";
        }
    }//end getValue(...)

    /**
     *
     */
    /**
     * 清除properties文件中所有的key和其值
     */
    public void clear() {
        propertie.clear();
    }//end clear();

    /**
     *
     */
    /**
     * 改變或添加一個key的值,當key存在於properties文件中時該key的值被value所代替, 當key不存在時,該key的值是value
     *
     * @param key 要存入的鍵
     * @param value 要存入的值
     */
    public void setValue(String key, String value) {
        propertie.setProperty(key, value);
    }//end setValue(...)

    /**
     *
     */
    /**
     * 將更改後的文件數據存入指定的文件中,該文件可以事先不存在。
     *
     * @param fileName 文件路徑+文件名稱
     * @param description 對該文件的描述
     */
    public void saveFile(String fileName, String description) {
        try {
            outputFile = new FileOutputStream(fileName);
            propertie.store(outputFile, description);
            outputFile.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
    }//end saveFile(...)

    public static void main(String[] args) {
        Configuration rc = new Configuration(".\\src\\jcoapp\\logon.properties");//相對路徑
        String ip = rc.getValue("ftp.ip");//以下讀取properties文件的值
        System.out.println(ip);

//        Configuration saveCf = new Configuration();
//        saveCf.setValue("min", "10");
//        saveCf.setValue("max", "1000");
//        saveCf.saveFile(".\config\save.perperties");

    }//end main()
}//end class ReadConfigInfo


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章