java读取propertie配置文件
来源:互联网 发布:头发毛躁 知乎 编辑:程序博客网 时间:2024/06/05 05:48
/* * 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