1.了解一下什么是properties文件
*.properties
文件是一种常见的key-value 格式
的配置文件。
格式 : 键=值
- 键和值之间用
=
连接,不需要空格- 值不需要用引号引起来,默认是String 类型
- 如果存在多个相同的key,则后面的值会覆盖前面的值
2.了解一下什么是Properties类
Properties.java
是java.util
包下的一个工具类;
Properties.java
是HashTable
的一个子类,所以它也是一个集合类。
Properties.java
的主要使用的API方法有:
load()
: 加载properties文件到内存中
list()
: 指定输出位置,将properties文件中的内容输出出来
getProperty(key)
: 根据key获取对应的值
setProperty()
: 设置Properties类的内容
store()
: 把Properties对象的内容持久化到文件中去继承关系图如下 :
3.Properties类读取文件内容
3.1 properties文件
文件内容如下 :
name = 这是名称name
age=18
school_name=青岛大学
school_addr=山东省青岛市市南区
name=这是名称2
3.2 案例代码
package com.northcastle.properties_;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
/**
* author : northcastle
* createTime:2022/1/25
* 读取 properties 文件案例
*/
public class PropertiesReadForCSDN {
public static void main(String[] args) {
//1.要读取的文件位置:绝对路径
String filePath = "D:\\EDailyRoutine\\java-io-test\\properties_file.properties";
//2.声明 字符输入流 对象
FileReader fr = null;
//3.声明 Properties 对象
Properties propertiesObj = null;
try {
//4.实例化 字符输入流 对象
fr = new FileReader(filePath);
//5.实例化 Properties 对象
propertiesObj = new Properties();
//6.加载 properties 文件
propertiesObj.load(fr);
//7.把文件中的内容输出出来 ; 具体的输出位置由参数指定
propertiesObj.list(System.out);
System.out.println("==============================");
//8.获取指定的值,默认所有的值都是String类型
String name = propertiesObj.getProperty("name");
System.out.println("name : -->"+name+"<--"); // 如果有重复的key的时候,后面的值会覆盖前面的值
String age = propertiesObj.getProperty("age");
System.out.println("age : "+age);
String school_name = propertiesObj.getProperty("school_name");
System.out.println("school_name : "+school_name);
String school_addr = propertiesObj.getProperty("school_addr");
System.out.println("school_addr : "+school_addr);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//9.关闭流
if (fr != null){
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
3.3 执行结果
4.Properties类写内容到文件中
4.1 代码案例
package com.northcastle.properties_;
import java.io.*;
import java.util.Properties;
/**
* author : northcastle
* createTime:2022/1/25
*/
public class PropertiesWriterForCSDN {
public static void main(String[] args) {
//1.输出文件路径
String filePath = "D:\\EDailyRoutine\\java-io-test\\properties_file02.properties";
//2.声明 字符输出流对象
FileWriter fr = null;
//3.声明 Properties 对象
Properties propertiesObj = null;
try {
//4.实例化 字符输出流对象
fr = new FileWriter(filePath);
//5.实例化 Properties 对象
propertiesObj = new Properties();
//6.赋值
propertiesObj.setProperty("bookName","深入理解Java虚拟机");
propertiesObj.setProperty("bookPrice","123.88");
propertiesObj.setProperty("bookName","深入理解Java虚拟机(第三版)");
propertiesObj.setProperty("bookAuthor","zhouzhi明");
//7.持久化到文件中 : 第二个参数是备注信息,如果是中文,则在properties中是被转码的
propertiesObj.store(fr,"这是一个备注信息");
} catch (IOException e) {
e.printStackTrace();
}finally {
//8.关闭字符输出流
if (fr != null){
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
4.2 执行结果
文件内容写入正常
5.完成
Congratulations!
You are one step closer to success!