## net.i2p.addressbook
Class ConfigParser

    java.lang.Object
      net.i2p.addressbook.ConfigParser

     class ConfigParser

extends Object

Utility class providing methods to parse and write files in config file format, and subscription file format. TODO: Change file encoding from default to UTF-8? Or switch to the DataHelper loadProps/storeProps methods?

Author:
  Ragnarok

Constructor Summary
`ConfigParser()`

Method Summary
`static Map<String,String>` `parse(BufferedReader input)` Return a Map using the contents of BufferedReader input.
`static Map<String,String>` `parse(File file)` Return a Map using the contents of the File file.
`static Map<String,String>` `parse(File file, Map<String,String> map)` Return a Map using the contents of the File file.
`static Map<String,String>` `parse(String string)` Return a Map using the contents of the String string.
`static List<String>` `parseSubscriptions(BufferedReader input)` Return a List where each element is a line from the BufferedReader input.
`static List<String>` `parseSubscriptions(File file)` Return a List where each element is a line from the File file.
`static List<String>` `parseSubscriptions(File file, List<String> list)` Return a List using the contents of the File file.
`static List<String>` `parseSubscriptions(String string)` Return a List where each element is a line from the String string.
`static String` `stripComments(String inputLine)` Strip the comments from a String.
`static void` `write(Map<String,String> map, BufferedWriter output)` Write contents of Map map to BufferedWriter output.
`static void` `write(Map<String,String> map, File file)` Write contents of Map map to the File file.
`static void` `writeSubscriptions(List<String> list, BufferedWriter output)` Write contents of List list to BufferedReader output.
`static void` `writeSubscriptions(List<String> list, File file)` Write contents of List list to File file.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ConfigParser

    ConfigParser()

Method Detail

### stripComments

    public static String stripComments(String inputLine)

  Strip the comments from a String. Lines that begin with '#' and ';' are considered comments, as well as any part of a line after a '#'.

  Parameters:
    `inputLine` - A String to strip comments from.
  Returns:
    A String without comments, but otherwise identical to inputLine.

### parse

    public static Map<String,String> parse(BufferedReader input)
                                    throws IOException

  Return a Map using the contents of BufferedReader input. input must have a single key, value pair on each line, in the format: key=value. Lines starting with '#' or ';' are considered comments, and ignored. Lines that are obviously not in the format key=value are also ignored. The key is converted to lower case.

  Parameters:
    `input` - A BufferedReader with lines in key=value format to parse into a Map.
  Returns:
    A Map containing the key, value pairs from input.
  Throws:
    `IOException` - if the BufferedReader cannot be read.

### parse

    public static Map<String,String> parse(File file)
                                    throws IOException

  Return a Map using the contents of the File file. See parseBufferedReader for details of the input format.

  Parameters:
    `file` - A File to parse.
  Returns:
    A Map containing the key, value pairs from file.
  Throws:
    `IOException` - if file cannot be read.

### parse

    public static Map<String,String> parse(String string)
                                    throws IOException

  Return a Map using the contents of the String string. See parseBufferedReader for details of the input format.

  Parameters:
    `string` - A String to parse.
  Returns:
    A Map containing the key, value pairs from string.
  Throws:
    `IOException` - if file cannot be read.

### parse

    public static Map<String,String> parse(File file,
                                           Map<String,String> map)

  Return a Map using the contents of the File file. If file cannot be read, use map instead, and write the result to where file should have been.

  Parameters:
    `file` - A File to attempt to parse.
    `map` - A Map containing values to use as defaults.
  Returns:
    A Map containing the key, value pairs from file, or if file cannot be read, map.

### parseSubscriptions

    public static List<String> parseSubscriptions(BufferedReader input)
                                           throws IOException

  Return a List where each element is a line from the BufferedReader input.

  Parameters:
    `input` - A BufferedReader to parse.
  Returns:
    A List consisting of one element for each line in input.
  Throws:
    `IOException` - if input cannot be read.

### parseSubscriptions

    public static List<String> parseSubscriptions(File file)
                                           throws IOException

  Return a List where each element is a line from the File file.

  Parameters:
    `file` - A File to parse.
  Returns:
    A List consisting of one element for each line in file.
  Throws:
    `IOException` - if file cannot be read.

### parseSubscriptions

    public static List<String> parseSubscriptions(String string)
                                           throws IOException

  Return a List where each element is a line from the String string.

  Parameters:
    `string` - A String to parse.
  Returns:
    A List consisting of one element for each line in string.
  Throws:
    `IOException` - if string cannot be read.

### parseSubscriptions

    public static List<String> parseSubscriptions(File file,
                                                  List<String> list)

  Return a List using the contents of the File file. If file cannot be read, use list instead, and write the result to where file should have been.

  Parameters:
    `file` - A File to attempt to parse.
    `list` - list of files to parse
  Returns:
    A List consisting of one element for each line in file, or if file cannot be read, list.

### write

    public static void write(Map<String,String> map,
                             BufferedWriter output)
                      throws IOException

  Write contents of Map map to BufferedWriter output. Output is written with one key, value pair on each line, in the format: key=value.

  Parameters:
    `map` - A Map to write to output.
    `output` - A BufferedWriter to write the Map to.
  Throws:
    `IOException` - if the BufferedWriter cannot be written to.

### write

    public static void write(Map<String,String> map,
                             File file)
                      throws IOException

  Write contents of Map map to the File file. Output is written with one key, value pair on each line, in the format: key=value. Write to a temp file in the same directory and then rename, to not corrupt simultaneous accesses by the router. Except on Windows where renameTo() will fail if the target exists.

  Parameters:
    `map` - A Map to write to file.
    `file` - A File to write the Map to.
  Throws:
    `IOException` - if file cannot be written to.

### writeSubscriptions

    public static void writeSubscriptions(List<String> list,
                                          BufferedWriter output)
                                   throws IOException

  Write contents of List list to BufferedReader output. Output is written with each element of list on a new line.

  Parameters:
    `list` - A List to write to file.
    `output` - A BufferedReader to write list to.
  Throws:
    `IOException` - if output cannot be written to.

### writeSubscriptions

    public static void writeSubscriptions(List<String> list,
                                          File file)
                                   throws IOException

  Write contents of List list to File file. Output is written with each element of list on a new line.

  Parameters:
    `list` - A List to write to file.
    `file` - A File to write list to.
  Throws:
    `IOException` - if output cannot be written to.