This advanced sample presents the event-controlled usage. The [ini4j] library fully supports the events defined in Preferences API.
This sample program expect the .ini file as a command line argument. If there is no such argument, it use the dwarfs.ini file.
import org.ini4j.IniPreferences; import java.io.FileInputStream; import java.util.prefs.*; public class ListenerSample { public static final String FILENAME = "dwarfs.ini"; public static void main(String[] args) throws Exception { String filename = (args.length > 0) ? args[0] : FILENAME; Preferences prefs = new IniPreferences(new FileInputStream(filename)); Listener listener = new Listener(); prefs.addNodeChangeListener(listener); Preferences jerry = prefs.node("jerry"); jerry.addPreferenceChangeListener(listener); jerry.put("color", "blue"); jerry.put("color", "gray"); jerry.putInt("age", 2); } static class Listener implements NodeChangeListener, PreferenceChangeListener { public void childAdded(NodeChangeEvent event) { System.out.println("node added: " + event.getChild().name()); } public void childRemoved(NodeChangeEvent event) { System.out.println("node removed: " + event.getChild().name()); } public void preferenceChange(PreferenceChangeEvent event) { System.out.println("preference changed: " + event.getKey() + " = " + event.getNewValue()); } } }