一、properties文件
- properties文件是以properties为后缀的文件,是一种属性文件,这种文件以"key=value"的格式存储内容
- Java中通常使用Properties类来读取这个文件,可以得到对应的数据
- properties文件的要求与特点
- 格式:属性名=属性值
- 每对属性占一行(即一个键值对占一行)
- 注释:在该文件中,用#表示单行注释
- 属性文件中所有空行被忽略
- 扩展名:properties
- 属性文件中不能直接写汉字,所有的汉字会转成Unicode编码
二、Properties类
1. Properties类的理解
- 可以使用这个类的实例存储键值对,我把它理解成 Map 的一个延申
- 一般情况下,可以把他当成一个可以存储键值对的map,但是这个map可以进行文件的读写操作
2. 常用方法Properties类
(1) 存储键值对
setProperty(String key, String value)
(2) 通过key获取对应的value
public Object get(Object key)
public String getProperty(String key)
public String getProperty(String key, String defaultValue)
(3) 读取文件
- 按面向行的格式从传入的字符流中读取属性列表
- 换句话说,就是把文件中的键值对存储到这个对象中
- 注意:可以读取txt文件、properties文件,但是推荐用properties保存配置信息
public synchronized void load(InputStream inStream)
public synchronized void load(Reader reader)
(4) 写入文件
public void list(PrintStream out)
public void list(PrintWriter out)
p.list(System.out)
3. 简单的应用(单元测试)
(1) 键值对的简单读写
@Test
public void test() throws Exception {
Properties p = new Properties();
p.setProperty("1", "AAA");
p.setProperty("2", "BBB");
System.out.println(p.get("1"));
System.out.println(p.get("2"));
System.out.println("**********************");
System.out.println(p.getProperty("1"));
System.out.println(p.getProperty("2"));
System.out.println("**********************");
System.out.println(p.getProperty("3", "CCC"));
System.out.println(p.getProperty("4", "DDD"));
System.out.println("**********************");
p.list(System.out);
}
(2) 对文件的读
@Test
public void test() throws Exception {
Properties p1 = new Properties();
Properties p2 = new Properties();
FileInputStream fs1 = new FileInputStream("doc\\jdbcTest1.properties");
FileInputStream fs2 = new FileInputStream("doc\\jdbcTest2.properties");
p1.load(fs1);
p2.load(fs2);
p1.list(System.out);
System.out.println();
p2.list(System.out);
}
(3) 对文件的写
- 可以对properties文件、txt文件进行写入
- 但是,将数据写入txt文件仅仅是为了演示操作,不建议使用该方法将数据写入txt中
@Test
public void test() throws Exception {
Properties p = new Properties();
p.setProperty("id", "1");
p.setProperty("name", "Tom");
p.setProperty("age", "18");
PrintStream ps1 = new PrintStream("doc\\aaa.txt");
PrintStream ps2 = new PrintStream("doc\\jdbcTest.properties");
p.list(ps1);
p.list(ps2);
}
4. 读取properties文件的模板
public static void test() {
try {
Properties p = new Properties();
FileInputStream fs = new FileInputStream("doc\\jdbcTest2.properties");
p.load(fs);
String id = p.getProperty("id");
String name = p.getProperty("name");
String age = p.getProperty("age");
System.out.println("id = " + id);
System.out.println("name = " + name);
System.out.println("age = " + age);
} catch (Exception e) {
System.out.println("出错了!!!");
e.printStackTrace();
}
}