java读取项目或包下面的属性文件方法
1.使用java.util.Properties类的load()方法
1 //文件在项目下。不是在包下!! 2 3 InputStream in = new BufferedInputStream(newFileInputStream("demo.properties")) ; 4 5 Properties p = new Properties(); 6 7 p.load(in) ; 8 9 String className2 =p.getProperty("database.driver"); 10 11 String url = p.getProperty("database.url"); 12 13 String user =p.getProperty("database.user"); 14 15 String password =p.getProperty("database.pass");
2. 使用java.util.Resourcebundle类的getbundle()方法
//前面没有“/”代表当前类的目录 示例: //文件和类在同一个包下,注意它的文件名和后缀!!是调换的, ResourceBundle resource =ResourceBundle.getBundle("properties.jdbc"); String className =resource.getString("database.driver"); String url =resource.getString("database.url"); String user =resource.getString("database.user"); String password =resource.getString("database.pass");
3.使用java.util.PropertyResourceBundle类的构造函数
// 文件在项目下 或者 src/demo.properties // 在 src/demo.properties 写成 new FileInputStream("src/demo.properties") InputStream in = new BufferedInputStream(new FileInputStream("demo.properties")); ResourceBundle rb = new PropertyResourceBundle(in) ; String className4 =rb.getString("database.url");
4.使用class变量的getresourceasstream()方法
示例: InputStream in=Properties.class.getResourceAsStream("/properties/jdbc.properties"); // 包点类名下的。 // 如果找不到带有该名称的资源,则返回 null Properties p = new Properties(); p.load(in); System.out.println(p.getProperty("database.url"));
5.使用class.getclassloader()所得到的java.lang.classloader的getresourceasstream()方法
// properties 文件 要放在src下面,否则找不到啊 示例: InputStream in = 类名.class.getClassLoader().getResourceAsStream("jdbc.properties"); Properties p = new Properties() ; p.load(in); System.out.println(p.getProperty("database.pass"));
6.使用java.lang.classloader类的getsystemresourceasstream()静态方法
示例: // 同包名下 InputStream in =ClassLoader.getSystemResourceAsStream("properties/jdbc.properties"); Properties p = new Properties() ; p.load(in) ; System.out.println(p.getProperty("database.user"));
总结:如果是 在WEB上读取properties文件,写成下面这种。上面写的那些只在 JavaSE 中
String path =Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println(path);
InputStreamin = new FileInputStream(newFile(path+File.separator+"mysql.properties"));
Properties prop = new Properties();
突破昨天的自己