- 普通文件.txt
- 属性文件.properties(本质也是文本文件,因此txt文本内部如果也是键值对形式的也可以使用properties相关的方法相关的操作)
- XML文件.xml
properties文件概述
- 特点
1、都只能是键值对
2、键不能重复
3、文件后缀一般是.properties结尾的
Properties
是一个Map集合(键值对集合),但是我们一般不会当集合使用。
核心作用:Properties是用来代表属性文件的,通过Properties可以读写属性文件里的内容
使用Properties读取属性文件里的键值对数据
读取Properties文件
- 如果打印的中文乱码了,如出现问号,自行去IDEA把文件编码改成utf-8(可以参考这篇博客)
package org.example.特殊文件;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;
public class Test {
public static void main(String[] args) throws Exception {
// 1. 创建一个properties的对象出来(键值对集合,空容器)
Properties properties = new Properties();
System.out.println(properties);
// 2. 开始加载属性文件中的键值对数据到properties对象中去
properties.load(new FileReader("E:\\studyproject\\text1\\demo02\\src\\aaa.properties"));
System.out.println(properties); // // 拿到了全部Properties文件键值对转成的对象
// 3.根据键取值
System.out.println(properties.getProperty("username"));
System.out.println(properties.getProperty("password"));
// 4.遍历全部的键和值
Set<String> keys = properties.stringPropertyNames();
for (String key : keys) {
String value = properties.getProperty(key);
System.out.println(key+"---->"+value);
}
System.out.println("---------------");
// 也可以通过foreach
properties.forEach((k,v)->{
System.out.println(k+"---->"+v);
});
}
}
将键值对数据存储到Properties文件中去
package org.example.特殊文件;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Properties;
import java.util.Set;
public class Test2 {
public static void main(String[] args) throws Exception {
// 1. 将键值对数据存入到Properties文件中去
Properties properties = new Properties();
properties.setProperty("张无忌","minmin");
properties.setProperty("张翠山","susu");
properties.setProperty("name","你好");
properties.setProperty("age","18");
// 2. 将Properties对象中的键值对数据存入到属性文件中去
// 参数二是注释信息,随便填写就行(这个管道不需要关闭,内部会自动关闭)
properties.store(new FileWriter("E:\\studyproject\\text1\\demo02\\src\\aaa.properties"),"练习");
}
}