技術總結:讀取Properties配置檔案
阿新 • • 發佈:2018-12-15
最近整理以前程式碼,將讀取Properties配置檔案的程式碼編寫成一個工具。使用Map進行儲存。利用java的多型性實現不同形式的讀取。話不多說,貼程式碼
/* * @auther yc * 2018/10/13 */ package yc_util.core; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; public class PropertiesReader { private static final Map<String, String> propertyMap = new HashMap<>(); public static void init(String path) { InputStream is = PropertiesReader.class.getResourceAsStream(path); init(is); } public static void init(File file) { try { InputStream is = new FileInputStream(file); init(is); } catch (FileNotFoundException e) { e.printStackTrace(); } } public static void init(InputStream is) { try { InputStreamReader isr = new InputStreamReader(is); Properties properties = new Properties(); properties.load(isr); Enumeration<?> keys = properties.propertyNames(); while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); String value = properties.getProperty(key); propertyMap.put(key, value); } } catch (IOException e) { System.out.println("指定檔案未找到!"); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } public static String getValue(String key) { return propertyMap.get(key); } public static List<String> getKeyList() { List<String> keyList = new ArrayList<>(); keyList.addAll(propertyMap.keySet()); return keyList; } }