Properties的基本使用
一、properties读取配置文件中的内容
1、Properties_debug类
继承了hashtable,默认初始化走hashtable的构造函数,扩容机制也和hashtable一致
inputStream:输入流,指的是读取文件中数据向程序中输入
outputStream:输出流,指的是从java程序中往文件中写
输入输出流均是相对于java程序来说的
package com.liu.map_;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.*;
public class Properties_debug {
public static void main(String[] args) {
//新建一个Properties对象
Properties properties = new Properties();
//缓冲输入流
BufferedInputStream in = null;
try {
//获取文件db.properties中的内容,以输入流形式读入java程序中
in = new BufferedInputStream(new FileInputStream("D:\\idea\\java程序放这里\\collection\\collection\\src\\com\\liu\\map_\\db.properties"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
//将输入流中的数据加载到properties文件中
properties.load(in);
//遍历properties
//properties.stringPropertyNames():properties中没有迭代器,所以需要用stringPropertyNames
//方法转化为Set型,然后才能使用迭代器
System.out.println("properties=>"+properties);
Iterator<String> iterator = properties.stringPropertyNames().iterator();
while (iterator.hasNext()) {
String next = iterator.next();
System.out.println("key="+next+",values="+properties.getProperty(next));
}
System.out.println("names=>"+properties.propertyNames());
} catch (IOException e) {
e.printStackTrace();
}
}
}
2、db.properties
这里可以为 :也可以为 =
name:liuzhiyuan
password:123456
源码
if ((c == '=' || c == ':') && !precedingBackslash) {
valueStart = keyLen + 1;
hasSep = true;
break;