properties配置文件的读写类

先贴出代码,有空再来写说明。

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class SingleProperty {

private Properties prop = null;
private InputStream in = null;
private OutputStream os;
private String path;

public SingleProperty(String path) {
this.path = path;
initProperty();
}

public SingleProperty() {
prop = new Properties();
}

public void setPath(String path) {
try {
in = new FileInputStream(this.path);
} catch (FileNotFoundException ex) {
}
}

private void initProperty() {
try {
prop = new Properties();
//System.getProperty("user.dir") 获得项目所在位置路径,如 F:\zgh\netbeanspace\ClientTest
//path=conf/config.properties 此位置为项目所在路径下的conf/config.properties文件路径,conf与lib并列
in = new FileInputStream(this.path);
} catch (FileNotFoundException ex) {
}
}

private void setIs() {
try {
if (in == null) {
in = new FileInputStream(this.path);
}
} catch (IOException ex) {
}
}

private void setOs() {
try {
os = new FileOutputStream(this.path); //"src/org/lt/cj/config/config.properties"
} catch (FileNotFoundException ex) {
}
}

//获取所有属性
public Properties getProperty() {
try {
setIs();
prop.load(in);
} catch (IOException ex) {
}
return prop;
}

//获取属性值
public String getValue(String key) {
String value = "";
try {
setIs();
prop.load(in);
value = prop.getProperty(key);
} catch (IOException ex) {
}
return value;
}

//将Map的键值对添加到配置文件,值允许用空字符
public void addProperty(Map<String, String> map, String comments) {
try {
setIs();
prop.load(in);
setOs();

Set keys = map.keySet();
for (Iterator it = keys.iterator(); it.hasNext();) {
String key = (String) it.next();
String value = map.get(key);
prop.setProperty(key, value);
}
prop.store(os, comments);
} catch (IOException ex) {
}
}

//修改属性值
public void setProperty(String key, String value) {
prop.setProperty(key, value);
}

//保存配置文件
public void store(String comments) {
try {
setOs();
prop.store(os, comments);
} catch (IOException ex) {
}
}

//删除key所指向的属性值
public void deleteProperty(String key, String comments) {
try {
setIs();
prop.load(in);
prop.remove(key);
setOs();
prop.store(os, comments);
} catch (IOException ex) {
}
}

//关闭读配置文件的IO
public void endAndcloseIO() {
try {
if (os != null) {
os.flush();
os.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
}
}

//打印配置文件中的所有属性
public void printMap(Map map) {
Set keys = map.keySet();
for (Iterator it = keys.iterator(); it.hasNext();) {
Object key = it.next();
Object value = map.get(key);
System.out.println(key + "==" + value);
}
}

public static void main(String[] args) throws Exception {
SingleProperty p = new SingleProperty("src/com/test/config.properties");
Map<String, String> map = new HashMap<String, String>();
map.put("myParam", "hello");
map.put("parameter2", "Hi,nice to meet you.");
p.addProperty(map, "修改配置参数");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值