关于读取properties文件的方法
第一种方法是使用InputStream字节流的方式,读取src下的properties文件,两种方式我都是以获取数据库的连接来举例子
先贴出properties文件这是数据库的连接配置,这个文件在我项目工厂下的config包中路径为src/config/c3p0.properties
jdbc_driver=com.mysql.jdbc.Driver jdbc_url=jdbc:mysql://localhost:3306/day101 jdbc_password=123456 jdbc_username=root
private static String jdbcDriver = null;
private static String jdbcUrl = null;
private static String jdbcUsername = null;
private static String jdbcPassword = null;
static{
try {
Properties properties = new Properties();
//这里用了类加载器,加载类路径下的包为config下的c3p0.properties文件
InputStream inputStream = JdbcUtil.class.getClassLoader().getResourceAsStream("config/c3p0.properties");
//加载InputStream流
properties.load(inputStream);
//从properties文件中以key/value的方式读取配置数据
jdbcDriver = properties.getProperty("jdbc_driver");
jdbcUrl = properties.getProperty("jdbc_url");
jdbcUsername = properties.getProperty("jdbc_username");
jdbcPassword = properties.getProperty("jdbc_password");
} catch (IOException e) {
e.printStackTrace();
}
}
public static Connection getConnection(){
try {
Class.forName(jdbcDriver);
return DriverManager.getConnection(jdbcUrl,jdbcUsername,jdbcPassword);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args){
System.out.println(getConnection());
}
第二种方式是用java.util提供的一个类ResourceBundle来读取properties文件的键值对,这种方式短小精悍
properties文件跟上面的第一种方式一样
我直接贴代码
private static String jdbcDriver = null;
private static String jdbcUrl = null;
private static String jdbcUsername = null;
private static String jdbcPassword = null;
static{
ResourceBundle bundle = ResourceBundle.getBundle("config/c3p0");
jdbcDriver = bundle.getString("jdbc_driver");
jdbcUrl = bundle.getString("jdbc_url");
jdbcUsername = bundle.getString("jdbc_username");
jdbcPassword = bundle.getString("jdbc_password");
}
public static Connection getConnection(){
try {
Class.forName(jdbcDriver);
return DriverManager.getConnection(jdbcUrl,jdbcUsername,jdbcPassword);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args){
System.out.println(getConnection());
}
浙公网安备 33010602011771号