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.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
阅读全文
0 0
- Properties类(java.util.Properties)
- java.util.Properties类
- java.util.Properties类
- 类 java.util.Properties
- java.util.Properties类
- java.util.Properties类
- java.util.Properties类
- java.util.Properties类
- Java.util.Properties类
- java.util.Properties类
- Java.util.properties类
- java.util.Properties类
- java.util 类 Properties
- java.util.Properties类
- java.util.Properties类
- java.util.Properties类
- java.util.Properties类---VS--properties文件
- java.util.Properties类分析
- 继承笔记
- 配置Mac的vim,使代码高亮
- Java:模运算
- 匿名内部类笔记
- 如何终止java线程
- java.util.Properties类
- 修饰词的用法
- 简单了解Effective java
- 单链表一些总结
- Gym-100820 Racing Gems(二维LIS)
- Alice, Bob, Two Teams CodeForces
- mysql row模式的一些小问题(一)
- 浅拷贝、深拷贝与写时拷贝
- Integer源码(toHexString).md