• java 读取配置文件


    java.util.Properties是对properties这类配置文件的映射。支持key-value类型和xml类型两种。

    key-value类型的配置文件大略长这样: 

    #测试环境配置:平台路径配置

    jstrd_home=D:/TMS2006/webapp/tms2006/WEB-INF/

    dbPort = localhost

    databaseName = myd

    dbUserName = root

    #打头的是注释行,Properties会忽略注释。允许只有key没有value。 例如这样:

    #测试环境配置:平台路径配置

    jstrd_home=D:/TMS2006/webapp/tms2006/WEB-INF/

    dbPort =

    databaseName

    这种情况下,value会被set成null。 properties类实现了Map接口,所以很明显,他是用map来存储key-value数据,

    所以也注定存入数据是无序的,这个点需要注意。只能通过key的方式来get对应value。 针对key-value这种配置文件,

    是用load方法就能直接映射成map,非常简单好用。这种配置文件也是我们最重要碰到的配置文件,利用properties读取这类文件到内存一行代码就欧科,

    比自己解析强大多了,这点很赞。

    读取配置文件的大略代码如下: 

    public class LoadSample {

      public static void main(String args[]) throws Exception {

        Properties prop = new Properties();

        FileInputStream fis = new FileInputStream("sample.properties");

        prop.load(fis);

        prop.list(System.out);

        System.out.println(" The foo property: " + 9 prop.getProperty("foo"));

      }   

    }

    第六行的load方法直接生产一个内存map,第九行就能get到对应的value了,简单快捷。 这里的第七行list方法是一个输出方法,这边是输出到console,也可以输出到文件等,就能实现内存写入配置文件了。

    比如这样:

    //通过list 方法将Properties写入Properties文件

    import java.io.IOException;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.PrintStream;

    import java.util.Properties;

    public class Test {

      public static void main(String[] args) {

        Properties p = new Properties();

        p.setProperty("id","dean");

        p.setProperty("password","123456");

        try {

          PrintStream fW = new PrintStream(new File("e:\test1.properties"));

          p.list(fW );} catch (IOException e) { 

            e.printStackTrace();

          }

        }

    }

    这样就能把内存中的properties对象写入到文件中了。

    另外一种配置形式是xml形式的,这种配置相对上面一种就少见一点。 xml形式的配置文件格式大略是这样:

    读取xml配置跟读取kv配置没差别,就是把load换成xml对应的loadFromXML方法,代码大略是这样:

    public class LoadSampleXML {

      public static void main(String args[]) throws Exception {

        Properties prop = new Properties();

        FileInputStream fis = new FileInputStream("sampleprops.xml");

        prop.loadFromXML(fis);

        prop.list(System.out);

        System.out.println(" The foo property: " + 9 prop.getProperty("foo"));

      } 

    把内存中的properties对象写入到xml文件中也和上面差不多,就是把list方法改成xml对应的storeToXML方法。 代码大略是这样:

    import java.io.IOException;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.PrintStream;

    import java.util.Properties;

    public class Test {

      public static void main(String[] args) {

        Properties p = new Properties();

        p.setProperty("id","dean");

        p.setProperty("password","123456");

        try{

          PrintStream fW = new PrintStream(new File("e:\test1.xml"));

          p.storeToXML(fW,"test");

        } catch (IOException e) {

          e.printStackTrace();

        } 

      }

    }

  • 相关阅读:
    大战设计模式【13】—— 组合模式
    大战设计模式【12】—— 迭代器模式
    大战设计模式【11】—— 模板方法模式
    大战设计模式【10】—— 外观模式
    linux命令进阶
    ansible普通用户su切换
    Ansible 进阶技巧
    ansible playbook对错误的处理
    ansible示例,离线安装etcd
    (原)centos7安装和使用greenplum4.3.12(详细版)
  • 原文地址:https://www.cnblogs.com/mhc-fly/p/6992142.html
Copyright © 2020-2023  润新知