Java Preferences with a backing file instead of the default store - original by David Croft (Public Domain)