配置文件代码package Properties;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Properties;
import java.util.Scanner;
/**
* 内容: 学习使用Properties写配置文件,和读取配置文件,以及修改配置文件的内容,并会在装载对象的时候,载入配置文件的内容
* 构造:
* 作者: 沙漠骆驼
* 日期: 2017年4月16日上午10:48:56
*/
public class PropertiesStudy {
/**
* 读取配置文件的内容
* @param file
* @return
* @throws IOException
*/
public boolean readProperty(File file) throws IOException {
if (!file.exists()) {
System.out.println("配置文件不存在!");
return false;
}
if (file.isFile()) {
FileInputStream fin = new FileInputStream(file);
InputStreamReader inputStreamReader = new InputStreamReader(fin,"GBK");
Properties properties = new Properties();
properties.load(inputStreamReader);
String name = properties.getProperty("name");
String age = properties.getProperty("age");
String address = properties.getProperty("address");
fin.close();
System.out.println(name);
System.out.println(age);
System.out.println(address);
return true;
}
return false;
}
/**
* 创建配置文件
* @param file
* @return
* @throws IOException
*/
public boolean creatProperties(File file) throws IOException {
if (!file.exists()) {
if (file.createNewFile()) {
System.out.println("配置文件不存在!已创建" + file.getName() + "");
}
}
System.out.println("配置文件已存在");
return false;
}
/**
* 设置配置文件中的字段
* @param file
* @return
* @throws IOException
*/
public boolean charSetProperties(File file) throws IOException {
if (file.exists()) {
OutputStream outputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, "GBK");
Properties properties = new Properties();
properties.setProperty("name", "沙漠骆驼");
properties.setProperty("age", "27");
properties.store(outputStreamWriter, "配置文件编码测试");
outputStreamWriter.close();
return true;
}
return false;
}
/**
* 设置配置文件中的字段
* @param file
* @return
* @throws IOException
*/
public boolean setProperties(File file) throws IOException {
Scanner input = new Scanner(System.in);
if (!file.exists()) {
creatProperties(file);
}
if (file.exists()) {
// 设置属性为追加方式存贮
OutputStream out1 = new FileOutputStream(file);
OutputStream out = new FileOutputStream(file, true);
Properties properties = new Properties();
System.out.println("请输入配置文件的key1:");
properties.put("key1", input.next());
System.out.println("请输入配置文件的key2:");
properties.put("key2", input.next());
properties.setProperty("key1", "沙漠骆驼[]set");
properties.setProperty("age", "27");
properties.setProperty("address", "测试地址");
properties.setProperty("name", "沙漠骆驼");
properties.store(out1, "我在测试配置文件,这里是配置文件的存储方法,此处写日志");
out.close();
return true;
}
input.close();
return false;
}
/**
* 移除配置文件中的字段
* @param file
* @param key
* @return
* @throws IOException
*/
public boolean removeProperties(File file, String key) throws IOException {
if (!file.exists()) {
System.out.println("您要删除键值的Properties配置文件不存在");
return false;
}
if (file.exists()) {
FileInputStream fin = new FileInputStream(file);
FileOutputStream fout = new FileOutputStream(file);
Properties properties = new Properties();
properties.load(fin);
if (properties.getProperty(key) != null) {
System.out.println("您要删除的:" + properties.getProperty(key));
System.out.println(properties.remove(key));
properties.store(fout, key);
fin.close();
return true;
}
fout.close();
}
return false;
}
}
测试类package Properties;
import java.io.File;
import java.io.IOException;
/**
* 内容:测试Properties的使用
* 构造:
* 作者:沙漠骆驼
* 日期: 2017年4月16日上午11:02:59
*/
public class Test {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File file = new File("aaa/config.properties");
if (!file.exists()) {
//如果文件不存在,创建一个这个文件
boolean createNewFile = file.createNewFile();
System.out.println(createNewFile);
}
PropertiesStudy propertiesStudy = new PropertiesStudy();
//读取配置文件
boolean readProperty = propertiesStudy.readProperty(file);
System.out.println(readProperty);
//设置配置文件
//System.out.println(propertiesStudy.setProperties(file));
//System.out.println("删除配置文件中的键");
//System.out.println(propertiesStudy.removeProperties(file, "address"));
System.out.println(propertiesStudy.charSetProperties(file));
}
}
配置文件File file = new File("aaa/config.properties");