zoukankan      html  css  js  c++  java
  • 属性集合java.util.Properties

    属性集合java.util.Properties

    java.util.Properties集合 extends Hashtable<k, v> implements Map<k, v>

    Properties类表示一个持久的属性集,可以保存在流中,或者从流中加载。是唯一一个和IO流相结合的集合。Properties集合是一个双列集合,key和value默认都是字符串

    方法

    方法 作用
    void store(OutputStream out, String comments) 把集合的临时数据,持久化写到硬盘存储
    void load(Writer writer, String comments) 把硬盘的文件(键值对),读取到集合中使用

    store方法使用步骤

    • 创建Properties对象,添加数据
    • 创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
    • 使用properties对象的store方法,把集合的临时数据持久化写入到硬盘
    • 释放资源
    package cn.zhuobo.day14.aboutProperties;
    
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Properties;
    import java.util.Set;
    
    public class Demo01Properties {
        public static void main(String[] args) throws IOException {
            Properties properties = new Properties();
            properties.setProperty("aaa","11");
            properties.setProperty("bbb", "22");
            properties.setProperty("ccc", "33");
    
    // 使用字符输出流
            FileWriter fw = new FileWriter("/home/zhuobo/Desktop/dir/prop.txt");
            properties.store(fw, "store data");
            
            // 使用字节输出流的匿名对象
            properties.store(new FileOutputStream("/home/zhuobo/Desktop/dir/prop1.txt"), "");
    
            Set<String> keySet = properties.stringPropertyNames();
            for (String key : keySet) {
                System.out.println(properties.getProperty(key));
            }
            fw.close();
        }
    }
    

    键值对写入文件,键与值之间使用空格分隔也是和等号一样的效果,#后面的是注释

    load方法使用

    • 创建Properties对象
    • 使用Properties对象的load方法读取保存键值对的文件
    • 遍历Properties集合查看
    // 创建Properties对象
    Properties properties1 = new Properties();
    
    // 使用Properties对象的load方法读取保存键值对的文件
    properties1.load(new FileReader("/home/zhuobo/Desktop/dir/prop1.txt"));
    
    // 遍历Properties集合查看
    Set<String> keySet = properties.stringPropertyNames();
    for (String key : keySet) {
        System.out.println(key + "=" + properties.getProperty(key));
    }
    

    该集合有些特有的处理字符串的方法:

    方法 作用
    Object setProperty(String key, String value) 调用Hashtable的put方法
    String getProperty(String key) 相当于Map中的get方法,通过键获得值
    Set StringPropertyNames() 返回此属性列表的键值,其中该键值对应值都是字符串,此方法相当于Map集合的keySet方法
    package cn.zhuobo.day14.aboutProperties;
    
    import java.util.Properties;
    import java.util.Set;
    // 注意使用Properties集合特有的处理字符串的方法
    public class Demo01Properties {
        public static void main(String[] args) {
            Properties properties = new Properties();
            properties.setProperty("aaa","11");
            properties.setProperty("bbb", "22");
            properties.setProperty("ccc", "33");
    
            Set<String> keySet = properties.stringPropertyNames();
            for (String key : keySet) {
                System.out.println(properties.getProperty(key));
            }
        *
    
  • 相关阅读:
    Echarts数据可视化grid直角坐标系(xAxis、yAxis)
    Cannot find module '@babel/plugin-proposal-class-properties'
    git 基本操作
    React报错:Laravel React-Router browserHistory 刷新子页面报错404
    php报错:Notice: iconv(): Wrong charset, conversion from `GBK' to `UTF8' is not allowed
    Larval报错:后台上传图片,storage目录也有相应的图片,但前台访问不到图片。
    Laravel报错:1071 Specified key was too long; max key length is 1000 bytes
    thinkcmf报错:fileowner(): stat failed for /sys
    vbox虚拟机复制&&虚拟机指定静态IP
    thinkcmf在万网上部署
  • 原文地址:https://www.cnblogs.com/zhuobo/p/10659106.html
Copyright © 2011-2022 走看看