Java 读取属性文件

// messages.hello.properties id=001 name=惜缘 love=I think,therefor i am. friends=Hi! {0} and {1} ,how are you? // org.PropertiesUtil.java package org; import java.io.UnsupportedEncodingException; import java.text.MessageFormat; import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; public class PropertiesUtil { private static String encoding = "UTF-8"; /** * read the message with key from the resource bundle * @param bundlePath * @param key * @return */ public static String getString(String bundlePath,String key){ return getString(bundlePath,key,null); } /** * read the message with key from the resource bundle * @param bundlePath * @param key * @param args * @return */ public static String getString(String bundlePath,String key,Object[] args){ // we will throw a MessingResourceException if the bundle name is invalid ResourceBundle bundle = getBundle(bundlePath); try{ String msg = bundle.getString(key); if(msg == null){ return ""; } // change the message encoding msg = convertISO(msg); return msg = MessageFormat.format(msg, args); } catch(MissingResourceException e){ return ""; } } /** * get ResourceBundle with bundlePath * @param bundlePath * @return * @throws MissingResourceException if resource is messing */ private static ResourceBundle getBundle(String bundlePath){ Locale locale = Locale.getDefault(); ResourceBundle bundle = ResourceBundle.getBundle(bundlePath,locale,getClassLoader()); return bundle; } /** * get the current ClassLoader * @return */ protected static ClassLoader getClassLoader(){ return PropertiesUtil.class.getClassLoader(); } /** * convert msg encoding * @param msg * @return */ public static String convertISO(String msg){ if(msg != null){ try{ return new String(msg.getBytes("iso-8859-1"),getEncoding()); } catch(UnsupportedEncodingException e){ e.printStackTrace(); } } return ""; } /** * get encoding * @return */ public static String getEncoding() { return encoding; } /** * set encoding * @param encoding */ public static void setEncoding(String encoding) { PropertiesUtil.encoding = encoding; } } // test.PropertiesUtilTest.java package test; import org.PropertiesUtil; public class PropertiesUtilTest { public static void main(String[] args) { final String BUNDLE_PATH = "messages.hello"; String id = PropertiesUtil.getString(BUNDLE_PATH, "id"); String name = PropertiesUtil.getString(BUNDLE_PATH, "name"); String love = PropertiesUtil.getString(BUNDLE_PATH, "love"); String friends = PropertiesUtil.getString(BUNDLE_PATH, "friends", new Object[]{"boy","girl"}); System.out.println(id); System.out.println(name); System.out.println(love); System.out.println(friends); } } // console out 001 惜缘 I think,therefor i am. Hi! boy and girl ,how are you?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值