Java的编程之旅50——Propertise的使用

Java中的Properties是一个键值对集合,它继承自Hashtable类。它用于存储配置文件或属性文件中的键值对。使用过程和Map集合类似

java 复制代码
        Properties prop = new Properties();
        prop.put("1","A");
        prop.put("2","B");
        prop.put("3","C");
        prop.put("4","D");
        prop.put("5","E");

        //System.out.println(prop);

        Set<Object> keySet = prop.keySet();
        for (Object key : keySet) {
            System.out.println(key + " <==> "+prop.get(key));
        }

这段代码创建了一个Properties对象,并向其中添加了5个键值对。然后通过调用prop.keySet()方法获取所有键的集合,在for循环中遍历这个键集合,通过prop.get(key)方法获取每个键对应的值,并将键和值打印出来。

运行结果应该是:

复制代码
1 <==> A
2 <==> B
3 <==> C
4 <==> D
5 <==> E

Properties类提供了一些方法来操作属性文件,包括加载属性文件、获取和设置属性值、保存属性文件等。

Properties类的常用方法包括:

  • getProperty(String):根据键获取属性值。
  • setProperty(String, String):根据键设置属性值。
  • store(OutputStream, String):保存属性文件。
  • load(InputStream):加载属性文件
java 复制代码
        Properties prop = new Properties();

        //setProperty添加键值
        prop.setProperty("1","A");
        prop.setProperty("2","B");
        prop.setProperty("3","C");
        prop.setProperty("4","D");
        prop.setProperty("5","E");

        //stringPropertyNames获取键的集合
        Set<String> keySet = prop.stringPropertyNames();
        for (String key : keySet) {

            //通过键获取值
            System.out.println(key+"<==>"+prop.getProperty(key));
        }

这段代码创建了一个Properties对象,并使用setProperty()方法添加了5个键值对。然后通过调用prop.stringPropertyNames()方法获取所有键的集合,并使用for循环遍历这个键集合。在循环中,通过调用prop.getProperty(key)方法来获取每个键对应的值,并将键和值打印出来。

运行结果应该是:

复制代码
1 <==> A
2 <==> B
3 <==> C
4 <==> D
5 <==> E

对文件的操作

java 复制代码
public static void main(String[] args) throws IOException {
        //myStore();
        myLoad();
    }

    private static void myLoad() throws IOException {
        Properties prop = new Properties();
        FileReader fr = new FileReader("./myConf.ini");
        prop.load(fr);
        fr.close();

        Set<String> keys = prop.stringPropertyNames();
        for (String key : keys) {
            System.out.println(key+"<==>"+prop.getProperty(key));
        }
    }

    private static void myStore() throws IOException {
        Properties prop = new Properties();
        FileWriter fw = new FileWriter("./myConf.ini");
        prop.setProperty("LOCALHOST","127.0.0.1");
        prop.setProperty("USERNAME","root");
        prop.setProperty("PASSWORD","toor");
        prop.setProperty("PORT","3306");

        prop.store(fw,"MySQL Config");
        fw.close();



    }

这段代码是一个示例程序,展示了如何使用Properties类的load()和store()方法来读取和写入属性文件。

在main()方法中,首先调用了myLoad()方法。在myLoad()方法中,创建了一个Properties对象prop,然后通过FileReader打开一个属性文件myConf.ini,并使用load()方法将属性文件的内容加载到prop对象中。加载完成后,关闭FileReader。

接下来,使用stringPropertyNames()方法获取prop对象中的所有键,并使用for循环遍历键集合。在循环中,通过getProperty()方法获取每个键对应的值,并将键和值打印出来。

然后,注释掉了myStore()方法的调用。在myStore()方法中,创建了一个Properties对象prop,并通过FileWriter打开一个属性文件myConf.ini。然后使用setProperty()方法添加了四个键值对。最后,调用store()方法将属性文件内容写入到文件中,并在文件头部添加一行注释。最后,关闭FileWriter。

注释掉了myStore()方法的调用所以在代码中只执行了myLoad()方法,其结果是从属性文件myConf.ini中读取了键值对,并打印出来。

要执行myStore()方法,只需将注释取消掉,即可将键值对存储到myConf.ini属性文件中。

相关推荐
C^h4 分钟前
c++ string
开发语言·c++
raindayinrain25 分钟前
c++高性能--原子操作,无锁编程,操作顺序
开发语言·c++·性能优化
学逆向的34 分钟前
C++ 合并命名空间
开发语言·c++·网络安全
Zhao-Jichao40 分钟前
VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具
开发语言·c++
zzu123zsw1 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
学逆向的2 小时前
C 局部静态变量
c语言·开发语言·网络安全
大都督会赢的2 小时前
C++第一节课
开发语言·c++
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
源码集结号2 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
小王C语言2 小时前
Qt常用控件:容器类控件,标题分组框、标签页(浏览器标签)
开发语言·qt