package com.wptx.conf.utils;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.Collections;
import java.util.Date;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
/**
* CommentedProperties
* 针对Properties进行扩展的工具类
*
* 扩展的两个主要功能:
* 1.对Properties文件中注释的保存。
* CommentedProperties在读取和保存Properties文件时,会将其注释
* 一起读取保存。CommentedProperties中会提供方法来根据key获取
* 相应注释。在CommentedProperties中添加一个K-V对时,也会提供
* 添加相应注释的方法。
*
* 2.对Properties文件中Key值顺序的保证。
* CommentedProperties会保证Key的顺序。从一个Properties文件中
* 读取所有K-V对,保存到另一个Properties文件时,Key的顺序不会
* 改变。
*
*
* @author BrokenDreams
*/
public class CommentedProperties{
/**
* 内部属性表
*/
private final Properties props;
/**
* 保存key与comment的映射,
* 同时利用这个映射来保证key的顺序。
*/
private final LinkedHashMap
keyCommentMap = new LinkedHashMap
();
private final LinkedHashSet