标签:
Java项目中有些信息(例如web的配置信息)可能要放在.properties文件中,那我们应该怎么来读取它们呢,下面给出一个工具类做一说明,并解决了中文乱码问题:
1、其中config.properties文件信息如下:
name=\u843D\u82B1\u6709\u610Fwang王 str=\u6D41\u6C34\u65E0\u60C5 boolean=true
2、PropertiesUtil工具类读取.properties文件
import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Properties; public class PropertiesUtil { private static String default_properties = "config.properties"; private static Properties prop; static { prop = new Properties(); try { InputStream is = new BufferedInputStream(new FileInputStream(getPath() + default_properties)); BufferedReader bf = new BufferedReader(new InputStreamReader(is,"UTF-8"));//解决读取properties文件中产生中文乱码的问题 prop.load(bf); } catch (Exception e) { e.printStackTrace(); } } public static String getProperty(String key) { return prop.getProperty(key); } public static String getProperty(String key, String defaultValue) { String value = prop.getProperty(key); if (value == null) return defaultValue; return value; } public static boolean getBooleanProperty(String name, boolean defaultValue) { String value = prop.getProperty(name); if (value == null) return defaultValue; return (new Boolean(value)).booleanValue(); } public static int getIntProperty(String name) { return getIntProperty(name, 0); } public static int getIntProperty(String name, int defaultValue) { String value = prop.getProperty(name); if (value == null) return defaultValue; return (new Integer(value)).intValue(); } public static String getPath() { return Thread.currentThread().getContextClassLoader().getResource("").getPath(); } /** * 读取指定properties中的值 * @param properties 文件名 * @param name 要读取的属性 * @return */ private String readProper(String properties, String name) { InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(properties); Properties p = new Properties(); try { p.load(inputStream); } catch (IOException e1) { e1.printStackTrace(); } return p.getProperty(name); } public static void main(String[] args) { PropertiesUtil propertiesUtil = new PropertiesUtil(); String name = PropertiesUtil.getProperty("name"); String str = propertiesUtil.readProper("config.properties","str"); Boolean bo = propertiesUtil.getBooleanProperty("boolean", false); System.out.println("name=="+name+","+"str=="+str+", boolean == " +bo); } }
标签:
原文地址:http://www.cnblogs.com/helloqiubao/p/5083223.html