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);
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("关闭流失败"); } } }