在软件项目开发中需要读取配置文件,下面就简单的演示一下如何从配置文件中读取数据以及修改其中的数据
一,创建一个新的Java项目,并命名为 propertiesdemo
二,创建配置文件,项目右击创建Text File格式的文件,如果找不到,可点击最下面的others按照关键字搜寻
在文件里面输入 temp=10
关闭该文件,系统提示你保存目录以及名称 将目录设置为propertiesdemo下的src文件夹下 名字命名为 properties 。如下图
三,读写代码 新建 PropertiesUtil类
package util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 配置文件读取帮助工具
* 单例设计模式 只允许创建该类一个对象
*/
import java.io.InputStream;
import java.util.Properties;
import java.util.Scanner;
public class PropertiesUtil extends Properties {
/**
*
*/
private static final long serialVersionUID = 1L;
private static PropertiesUtil instance = null;
private PropertiesUtil() { // 私有构造函数,不允许创建对象
InputStream is = null; // 定义一个字节输入流
try {
is = PropertiesUtil.class.getResourceAsStream("/properties"); // 查找具有给定名称的资源。
this.load(is);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static PropertiesUtil getInstance() { // 静态方法,可用类名直接调用
if (instance == null) { // 只允许创建一个对象
synchronized (PropertiesUtil.class) { // 线程锁,防止多线程并发访问,创建多个对象
if (instance == null) {
instance = new PropertiesUtil();
}
}
}
return instance; // 返回类对象
}
public void read() {
PropertiesUtil instance = PropertiesUtil.getInstance();
System.out.println("读取配置文件中的内容: ");
int temp = Integer.parseInt(instance.getProperty("temp"));// 参数为配置文件的变量名
System.out.println("temp = " + temp);
}
public void write() {
System.out.println("正在将数据写入配置文件...");
System.out.println("请输入需要写入的值:");
Scanner sc = new Scanner(System.in);
int temp = sc.nextInt();
PropertiesUtil instance = PropertiesUtil.getInstance();
instance.setProperty("temp", String.valueOf(temp));// 这里只是修改内存中的数据
FileOutputStream fos = null; // 定义一个字节输出流
try {
fos = new FileOutputStream(new File("./src/properties")); // File构造函数的参数为配置文件的路径
instance.store(fos, null); // 修改文件中的内容
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
PropertiesUtil instance = PropertiesUtil.getInstance();
instance.read();
instance.write();
instance.read();
}
}
四,运行结果如下
再看看配置文件的内容是否修改
OK ,配置文件的内容已经修改。