java 读取配置文件 与更新
笔记
public class Config { private static Properties props = new Properties(); static File configFile = null; static { InputStreamReader reader = null; try { File dir = new File(System.getProperty("user.dir")); configFile = new File(dir, "config.properties.dev"); if (!configFile.exists()) { // String path = Thread.currentThread().getClass().getClassLoader().getResource("config.properties").getPath(); // configFile = new File(path); configFile = new File(dir, "config.properties"); } reader = new InputStreamReader(new FileInputStream(configFile), "UTF-8"); props.load(reader); } catch (FileNotFoundException e) { } catch (Exception e) { } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { } } } } public static String getDsl(){ System.out.println("dsl" + props.getProperty("dsl")); return props.getProperty("dsl"); } public static String getDate(){ System.out.println("date" + props.getProperty("date")); return props.getProperty("date"); } public static void updateProperties(String keyname,String keyvalue) { try { props.load(new FileInputStream(configFile)); // 调用 Hashtable 的方法 put,使用 getProperty 方法提供并行性。 // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。 props.setProperty(keyname, keyvalue); OutputStream fos = new FileOutputStream(configFile); // 以适合使用 load 方法加载到 Properties 表中的格式, // 将此 Properties 表中的属性列表(键和元素对)写入输出流 props.store(fos, "Update '" + keyname + "' value"); } catch (IOException e) { System.err.println("属性文件更新错误"); } } }
欢迎指正,交流沟通,共同进步!对您有帮助的话点下推荐~~