java.util.Properties类

来源:互联网 发布:09和冷冷的故事 知乎 编辑:程序博客网 时间:2024/06/07 18:26

1、功能:读取项目中配置文件  or 为项目中的配置文件填充内容。实质,就是对properties这类配置文件的映射。这类配置文件的支持类型包括2类:.properties文件和xml文件类型。


以下代码都有一个公认的前提:配置文件我放在/Users/cxh/IdeaProjects/JavaBaseTest/src/bin文件夹下;

测试java代码放在/Users/cxh/IdeaProjects/JavaBaseTest/src文件夹下;



2、.propertise配置文件

2.1、读取

2.1.1、现在sample.propertise文件中手动写入代码:

password=12345

id=cxh

2.1.2、然后读取代码:

import java.io.FileInputStream;import java.util.Properties;/** * Created by cxh  on 17/07/21. */public class Main {    public static void main(String[] args) throws Exception {        Properties prop=new Properties();        FileInputStream fis=new FileInputStream("/Users/cxh/IdeaProjects/JavaBaseTest/src/bin/sample.properties");        prop.load(fis);        prop.list(System.out);        System.out.println();        System.out.println("The property is : "+prop.getProperty("id"));    }}

测试结果:

-- listing properties --password=123456id=cxhThe  property is : cxhProcess finished with exit code 0


2.2、写入

2.2.1、通过代码向未创建的新文件printStream.properties写入配置信息。

import java.io.IOException;import java.io.PrintStream;import java.util.Properties;/** * Created by cxh  on 17/07/21. */public class Main {    public static void main(String[] args)  {        Properties p=new Properties();        p.setProperty("username","cxh1005");        p.setProperty("sex","女");        p.setProperty("schoolNum","201609080");        try{            PrintStream fw=new PrintStream("/Users/cxh/IdeaProjects/JavaBaseTest/src/bin/printStream.properties");            p.list(fw);//将内存中内容写入到fw的目录文件中        }catch (IOException e){            e.printStackTrace();        }    }}

结果:

在bin文件夹下生成文件:printStream.properties,里面包含内容:

-- listing properties --schoolNum=201609080sex=女username=cxh1005

那,我们会发现,生产文件中的内容顺序和我们设定的不一样。因为Properties类实现类map接口,它是用key-value存储数据的,数据也是没有顺序保证的。


3、.xml文件

3.1、写入

3.1.1、手动写入配置信息:

import java.io.File;import java.io.IOException;import java.io.PrintStream;import java.util.Properties;/** * Created by cxh  on 17/07/21. */public class Main {    public static void main(String[] args)  {        Properties p=new Properties();        p.setProperty("IP","127.0.0.1");        p.setProperty("Mac","98:73:41:ac:0f:c2");        try{            PrintStream ps=new PrintStream(new File("/Users/cxh/IdeaProjects/JavaBaseTest/src/bin/printStreams.xml"));            p.storeToXML(ps,"testPrintToXMLFile");        }catch(IOException e){            e.printStackTrace();        }    }}

测试结果:

bin目录下生成文件:printStream.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><properties><comment>testPrintToXMLFile</comment><entry key="Mac">98:73:41:ac:0f:c2</entry><entry key="IP">127.0.0.1</entry></properties>


3.2、读取.xml文件里面的内容

3.2.1、手动生成文件readSteam.xml文件,然后写入内容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><properties>    <comment>testPrintReadFromXMLFile</comment>    <entry key="Mac">98:73:41:ac:0f:c2</entry>    <entry key="IP">127.0.0.1</entry></properties>

3.2.2、读取readSteam.xml文件里面的内容:

import java.io.FileInputStream;import java.util.Properties;/** * Created by cxh  on 17/07/21. */public class Main {    public static void main(String[] args)  throws  Exception{        Properties p=new Properties();        FileInputStream fis=new FileInputStream("/Users/cxh/IdeaProjects/JavaBaseTest/src/bin/readStream.xml");        p.loadFromXML(fis);        p.list(System.out);        System.out.println();  //空行        System.out.println("the Mac property is :"+p.getProperty("Mac"));    }}

输出内容:

-- listing properties --Mac=98:73:41:ac:0f:c2IP=127.0.0.1the Mac property is :98:73:41:ac:0f:c2Process finished with exit code 0




原创粉丝点击