public class TestProperties {
public static void main(String[] args) throws IOException {
Properties prop=new Properties();
prop.put("driver", "com.mysql.cj.jdbc.Driver");
System.out.println(prop.get("driver"));
// put的问题是直接存入的都变成了字符串,无论你有没有加双引号
// prop.put(1,1234)
prop.setProperty("Driver", "com.mysql.cj.jdbc.Driver");
System.out.println(prop.getProperty("Driver"));
// 1.打印所有的文件
System.out.println(prop.size());
// 将上面的键值对写入文件
OutputStream os = new FileOutputStream("d:/jdbc.properties");
// 写入注释
prop.store(os, "jdbc connection parameter");
// 读属性文件入properties类里面
InputStream is = new FileInputStream("d:/jdbc.properties");
prop.load(is);
// load的作用是将文件流的信息转化成properties的属性存放到properties类里面
System.out.println(prop);
// 假如文件就在项目里面
InputStream is2 = TestProperties.class.getResourceAsStream("/jdbc.properties");
prop.load(is2);
System.out.println(prop);
}
}
2.再类里面的用法:
public abstract class DBUtil2 {
static String driver;
static String url;
static String user;
static String password;
//假如每次都要初始化数据都要初始化一次properties,那太没有效率了,所以将初始化写在静态代码块里面,让文件读取次数减少
// 记得假如这样那么属性也是要变成类的静态成员变量的
static {
// 创建properties对象
Properties prop = new Properties();
// 读取属性文件
InputStream is = DBUtil2.class.getResourceAsStream("/jdbc.properties");
try {
prop.load(is);
} catch (IOException e) {
e.printStackTrace();
}
driver = prop.getProperty("driver");
url = prop.getProperty("url");
user = prop.getProperty("user");
password = prop.getProperty("password");
}
}