以前经常会用到读取property,因为程序中不能什么都写死,但是读取properties这个功能经常说,也经常用,就是没有自己动的写法,今天看了下我们项目中的实现方式,觉得比较简单,以后可以常用。
class="java" name="code">
/*
* Created on 2005-7-16
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.css.util;
import java.text.MessageFormat;
import java.util.List;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
* @author Administrator TODO To change the template for this generated type
* comment go to Window - Preferences - Java - Code Style - Code
* Templates
*/
public class Messages {
private static final String BUNDLE_NAME = "com.test.util.messages";//$NON-NLS-1$
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
private Messages() {
}
public static String getString(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
e.printStackTrace();
return '!' + key + '!';
}
}
public static String getString(String key, String[] paras) {
try {
String message = RESOURCE_BUNDLE.getString(key);
return MessageFormat.format(message, paras);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
public static String getString(String key, List arg) {
try {
if (arg == null || arg.size() <= 0) {
String[] paras = (String[]) arg.toArray();
return getString(key, paras);
}
return "";
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
}
这里有几个注意,就是配置文件的名字应该是,一般的命名规范是: 自定义名_语言代码_国别代码.properties,如下:
message_en_US.properties
message_zh_CN.properties
message.properties
还有一点就是,资源文件都必须是ISO-8859-1编码。只要这些满足,几乎就能实现平时的需求。
分享让更多人受益!