Properties工具类
Properties类位于java.util包内,是java的一个工具类,用于读写properties配置文件
读操作使用方法
- 创建一个Properties对象
- 创建一个InputStream或者Reader输入流,用于连接配置文本
- 用.load()方法把输入流放入Properties对象中
- 调用getProperty()方法获取数据并赋值
写操作使用方法
- 创建一个Properties对象
- 使用put()方法把需要储存的数据放入Properties对象
- 创建一个OutputStream或者Writer输入流,用于连接配置文本
- 用.store()方法把输入流放入Properties对象中
以下代码,注意事项
- 储存有save()和store()两种方法,save已废弃
- 使用静态代码块是为了在加载类的时候就把配置文件加载进来
- 服务器要加载配置文件要写带包名的路径,直接用FileInputStream()无法成功,要使用Thread.currentThread().getContextClassLoader()
.getResourceAsStream(“包名”)
去加载包路径
import java.io.*;
import java.util.Properties;
public class PropertiesDemo {
private static String version;
private static String name;
private static String password;
//静态代码块 只执行一次,且在main方法之前执行
static {
proRead();
}
private static void proWrite(String version,String name,String password){
Properties p = new Properties();
p.put("db.version",version);
p.put("db.name",name);
p.put("db.password",password);
try(OutputStream out = new FileOutputStream("C:\\Users\\sololan\\IdeaProjects\\IODemo" +
"\\src\\com\\res\\config.properties")){
System.out.println("生成流...");
p.store(out,"update config");
System.out.println("储存完成...");
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
}
private static void proRead(){
Properties p = new Properties();
try(InputStream in = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("com/res/config.properties")){
System.out.println("生成流");
p.load(in);
version = p.getProperty("db.version");
name = p.getProperty("db.name");
password = p.getProperty("db.password");
System.out.println("加载完成");
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
}
public static void main(String[] args) {
// proWrite("1","sololan","123456");
System.out.println(PropertiesDemo.version);
System.out.println(PropertiesDemo.name);
System.out.println(PropertiesDemo.password);
}
}