用java读取properties文件--转

今天为了通过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 + '!';  

        }  

    }  

}  

转自:http://duqiangcise.iteye.com/blog/319793

 

使用J2SE API读取Properties文件的六种方法

1。使用java.util.Properties类的load()方法
示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));
Properties p = new Properties();
p.load(in);

2。使用java.util.ResourceBundle类的getBundle()方法
示例: ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());

3。使用java.util.PropertyResourceBundle类的构造函数
示例: InputStream in = new BufferedInputStream(new FileInputStream(name));
ResourceBundle rb = new PropertyResourceBundle(in);

4。使用class变量的getResourceAsStream()方法
示例: InputStream in = JProperties.class.getResourceAsStream(name);
Properties p = new Properties();
p.load(in);

5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
示例: InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name);
Properties p = new Properties();
p.load(in);

6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法
示例: InputStream in = ClassLoader.getSystemResourceAsStream(name);
Properties p = new Properties();
p.load(in);

补充

Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
示例:InputStream in = context.getResourceAsStream(path);
Properties p = new Properties();
p.load(in);

注意:

this.getclass.getResourceAsStream(name);  //类与资源文件同级--同一个目录下

this.class.getClassLoader().getResourceAsStream(name); //资源文件与classpath同级。

未知来源

你可能感兴趣的:(properties)