-
Each config file contains zero or more sections containing zero or more entries:
| [Section1]
| key1 = 1
|
| [Section2]
| key1 = 2
-
Unicode escapes can be used in values.
| key1 = \u0070\u0075\u0062\u006c\u0069\u0063
-
Comment lines start with the '#' character and can be placed on lines before sections and entries:
| # A comment about this section
| [Section1]
|
| # A comment about this entry
| key1 = 1
-
Comments can also be placed on the same line as entries:
| key1 = 1 # A comment about this entry
-
Values containing '#' must be escaped to prevent identification as a comment character:
| valueContainingPound = Value containing \u0023 character
Likewise, '\' should be escaped to prevent confusion with unicode escapes.
-
Values containing newlines can span multiple lines.
Subsequent lines start with a tab character.
| multiLineValue =
| line 1,
| line 2,
| line 3
When retrieved, the above translates to "line1,\nline2,\nline3".
-
Leading and trailing whitespace on values are ignored.
-
Whitespace is not ignored within multi-line values (except for the leading tab character on each line).
-
Blank lines can be used anywhere in the file.
| # A comment line
|
| # Another comment line
| [Section1]
| ...
-
Values located before any sections are considered part of the no-name section, meaning
they are accessed simply by key and not section/key.
| # Top of file
|
| # Use config.getString("key1") to retrieve.
| key1 = val1
|
| # The first section
| [Section1]
|
| # Use config.getString("Section1/key2") to retrieve.
| key2 = val2
-
Section and key names must be at least one character long and not consist of any of the following
characters:
| / \ [ ] = #
-
Whitespace in section and key names is technically allowed but discouraged.