from:http://duqiangcise.iteye.com/blog/319793
注:如果path前面有 “/” 的话,“/”的意思是以编译目录。
例:普通java项目的/bin目录,javaweb项目的 /classes。
今天为了通过java读取properties文件,google了很长时间,终于找到了。现在特记录之和大家一起分享。
下面直接贴出代码:java类- public class Mytest
- public static void readFile(String fileName) {//传入参数fileName是要读取的资源文件的文件名如(file.properties)
- InputStream in = null;
- Properties pros = new Properties();
- try {
- if (null != fileName) {
- //前提是资源文件必须和Mytest类在同一个包下
- in = Mytest.class.getResourceAsStream(fileName);
- //得到当前类的路径,并把资源文件名作为输入流
- pros.load(in);
- Enumeration en = pros.propertyNames();//得到资源文件中的所有key值
- while (en.hasMoreElements()) {
- String key = (String) en.nextElement();
- System.out.println("key=" + key + " value=" + pros.getProperty(key));
- //输出资源文件中的key与value值
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- System.out.println("读取资源文件出错");
- } finally {
- try {
- if (null != in) {
- in.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- System.out.println("关闭流失败");
- }
- }
- }
方法二:
- import java.util.MissingResourceException;
- import java.util.ResourceBundle;
- public class Messages {
- private static final String BUNDLE_NAME = "com.xxx.cs.mm.service.messages"; //messages.properties文件和Messages类在同一个包下,包名:com.xxx.cs.mm.service
- 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) {
- return '!' + key + '!';
- }
- }
- }