读写properties配置文件时带上注释
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java使用jdk自带的类操作properties配置文件,特别是更改文件后会把注释全部删掉,再读时会不知道配置是什么意思,下面这个类是我自己写的不删除注释操作properties的类。
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
/**
* 读取Properties配置文件,同时读出注释。注释在jdk源方法的LineReader中忽略,
*
* 此处改造LineReader,并添加存放的变量map
*
* 同时新加了getPropertyAndComment(key)方法,返回的字符串:如果有注释则为:值#注释,如果无注释,则为:值
*
* 写入Properties方法是直接从网上下载的方法
* @author liuwei
* */
public class ReadAndWriteProperties extends Properties {
/**
*
*/
private static final long serialVersionUID = 1L;
public static void main(String[] args) throws Exception {
//写入
// ReadAndWriteProperties properties = new ReadAndWriteProperties();
// FileOutputStream fileOutputStream = new FileOutputStream(
// "D:/test.properties", true);
// OutputStreamWriter writer = new OutputStreamWriter(fileOutputStream);
// for (int i = 1; i < 10; i++) {
// String string = String.valueOf(i);
// properties.setP("Name" + string, string, "the name of " + string);
// }
// properties.orderStore(writer, "This is a test process...");
//读取
ReadAndWriteProperties props = new ReadAndWriteProperties();
File file = new File("E:\\test\\CemsMiddleware.properties");
InputStream in = new FileInputStream(file);
props.load(in);
Set
Object value = null;
for (Object key : keySet) {
// value = props.getProperty((String) key);
value = props.getPropertyAndComment((String) key);
System.out.println(key + ":" + value);
}
}
private LinkedHashMap
//首先是写相关--------------------------------------
/**
* Constructor.
*/
public ReadAndWriteProperties() {
super();
}
/**
* Constructor.
*
* @param properties
* the java propertis.
*/
public ReadAndWriteProperties(Properties properties) {
super(properties);
// Initialize the comment.
Iterator
while (iterator.hasNext()) {
Object key = iterator.next();
mentMap.put((String) key, null);