content: package com.ctrip.framework.apollo.core.utils;
  
  import java.io.IOException;
  import java.io.StringWriter;
  import java.util.Properties;
  
  /**
   * @author Jason Song(song_s@ctrip.com)
   */
  public class PropertiesUtil {
    /**
     * Transform the properties to string format
     * @param properties the properties object
     * @return the string containing the properties
     * @throws IOException
     */
    public static String toString(Properties properties) throws IOException {
      StringWriter writer = new StringWriter();
      properties.store(writer, null);
      StringBuffer stringBuffer = writer.getBuffer();
      filterPropertiesComment(stringBuffer);
      return stringBuffer.toString();
    }
  
    /**
     * filter out the first comment line
     * @param stringBuffer the string buffer
     * @return true if filtered successfully, false otherwise
     */
    static boolean filterPropertiesComment(StringBuffer stringBuffer) {
      //check whether has comment in the first line
      if (stringBuffer.charAt(0) != '#') {
        return false;
      }
      int commentLineIndex = stringBuffer.indexOf("\n");
      if (commentLineIndex == -1) {
        return false;
      }
      stringBuffer.delete(0, commentLineIndex + 1);
      return true;
    }
  }
  