* 读取web项目下/src目录下的db.properties配置文件:
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/caiwu
username=root
password=root
1、通过ServletContext的getRealpath获取文件的绝对路径//通过ServletContext的getRealpath获取文件的绝对路径
String realPath = this.getServletContext().getRealPath("WEB-INF/classes/db.properties");
//获取IO流
FileInputStream is = new FileInputStream(realPath);
//properties是持久化的一个空属性列表
Properties prop = new Properties();
//加载
prop.load(is);
//d读取
String driverClass = prop.getProperty("driverClass");
String url = prop.getProperty("url");
String username= prop.getProperty("username");
String password = prop.getProperty("password");
//打印
System.out.println("driverClass");
System.out.println("url");
System.out.println("username");
System.out.println("password");
2、通过ServletContext的getResourceAsStream获得IO流//通过ServletContext的getResourceAsStream获得IO流
InputStream is = this.getServletContext().getResourceAsStream("WEB-INF/classes/db.properties");
Properties prop = new Properties();
//加载
prop.load(is);
//读取
String driverClass = prop.getProperty("driverClass");
String url = prop.getProperty("url");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
//打印
System.out.println("driverClass");
System.out.println("url");
System.out.println("username");
System.out.println("password");
3、使用类加载器读取配置文件(附1)
package 类加载器加载配置文件;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class ReadFileUtils {
//私有构造(工具类)
private ReadFileUtils() {}
public static void readFile() throws IOException{
// 使用类的加载器来读取文件.
// 类的加载器用来加载class文件,将class文件加载到内存.
InputStream is = ReadFileUtils.class.getClassLoader().getResourceAsStream("db.properties");
Properties properties = new Properties();
properties.load(is);
String driverClass = properties.getProperty("driverClass");
String url = properties.getProperty("url");
String username = properties.getProperty("username");
String password = properties.getProperty("password");
System.out.println(driverClass);
System.out.println(url);
System.out.println(username);
System.out.println(password);
}
}
4、初学JAVA核心时使用的加载配置文件的方式(附2)//传统
//创建输入流对象
InputStream is = new FileInputStream("src/db.properties");
Properties prop = new Properties();
//加载
prop.load(is);
//获取
String driverClass = prop.getProperty("driverClass");
String url = prop.getProperty("url");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
//打印
System.out.println("driverClass");
System.out.println("url");
System.out.println("username");
System.out.println("password");
总结:
附2中使用的加载方式是初学者使用,在实际开发中禁止使用。发布的web项目是不存在/src目录的。
附1使用的类加载器:
优点:通过文件名可直接获取文件,不必写文件路径。
缺点:文件仅限在/src目录下的文件,一旦文件在其他目录下,则不能读取文件。