Properties类的使用

Properties工具类

Properties类位于java.util包内,是java的一个工具类,用于读写properties配置文件

读操作使用方法

  1. 创建一个Properties对象
  2. 创建一个InputStream或者Reader输入流,用于连接配置文本
  3. 用.load()方法把输入流放入Properties对象中
  4. 调用getProperty()方法获取数据并赋值

写操作使用方法

  1. 创建一个Properties对象
  2. 使用put()方法把需要储存的数据放入Properties对象
  3. 创建一个OutputStream或者Writer输入流,用于连接配置文本
  4. 用.store()方法把输入流放入Properties对象中

以下代码,注意事项

  1. 储存有save()和store()两种方法,save已废弃
  2. 使用静态代码块是为了在加载类的时候就把配置文件加载进来
  3. 服务器要加载配置文件要写带包名的路径,直接用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);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值