# Poco::Util

# class PropertyFileConfiguration

Library: Util
Package: Configuration
Header: Poco/Util/PropertyFileConfiguration.h

## Description

This implementation of a Configuration reads properties from a Java-style properties file.

The file syntax is implemented as follows.

- a line starting with a hash '#' or exclamation mark '!' is treated as a comment and ignored
- every other line denotes a property assignment in the form <key> = <value> or <key> : <value>

Keys and values may contain special characters represented by the following escape sequences:

- \t: tab (0x09)
- \n: line feed (0x0a)
- \r: carriage return (0x0d)
- \f: form feed (0x0c)

For every other sequence that starts with a backslash, the backslash is removed. Therefore, the sequence \a would just yield an 'a'.

A value can spread across multiple lines if the last character in a line (the character immediately before the carriage return or line feed character) is a single backslash.

Property names are case sensitive. Leading and trailing whitespace is removed from both keys and values. A property name can neither contain a colon ':' nor an equal sign '=' character.

## Inheritance

Direct Base Classes: MapConfiguration

All Base Classes: Poco::RefCountedObject, AbstractConfiguration, MapConfiguration

## Member Summary

Member Functions: load, save

Inherited Functions: begin, clear, createView, duplicate, end, enumerate, expand, getBool, getDouble, getInt, getRaw, getRawString, getString, hasOption, hasProperty, keys, parseBool, parseInt, referenceCount, release, setBool, setDouble, setInt, setRaw, setString

## Constructors

### PropertyFileConfiguration

PropertyFileConfiguration();

Creates an empty PropertyFileConfiguration.

### PropertyFileConfiguration

PropertyFileConfiguration(
std::istream & istr
);

Creates an PropertyFileConfiguration and loads the configuration data from the given stream, which must be in properties file format.

### PropertyFileConfiguration

PropertyFileConfiguration(
const std::string & path
);

Creates an PropertyFileConfiguration and loads the configuration data from the given file, which must be in properties file format.

## Destructor

### ~PropertyFileConfiguration

~PropertyFileConfiguration();

## Member Functions

### load

void load(
std::istream & istr
);

Loads the configuration data from the given stream, which must be in properties file format.

### load

void load(
const std::string & path
);

Loads the configuration data from the given file, which must be in properties file format.

### save

void save(
std::ostream & ostr
) const;

Writes the configuration data to the given stream.

The data is written as a sequence of statements in the form <key>: <value> separated by a newline character.

### save

void save(
const std::string & path
) const;

Writes the configuration data to the given file.