今天為了通過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同級。
未知來源