package Ġprefs Ċ Ċ import Ġmu . K Log gable Ċ import Ġmu . K Logger Ċ import Ġjava . io . File Ċ import Ġjava . util . prefs . Preferences Ċ import Ġjava . util . prefs . Preferences Factory Ċ Ċ /** Ċ Ġ* ĠPreferences Factory Ġimplementation Ġthat Ġstores Ġthe Ġpreferences Ġin Ġa Ġuser - defined Ġfile . ĠTo Ġuse Ġit , Ċ Ġ* Ġset Ġthe Ġsystem Ġproperty Ġ< tt > java . util . prefs . Preferences Factory </ tt > Ġto Ċ Ġ* Ġ< tt > prefs . File Preferences Factory </ tt > Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠThe Ġfile Ġdefaults Ġto Ġ[ user . home ] /. file prefs , Ġbut Ġmay Ġbe Ġoverridden Ġwith Ġthe Ġsystem Ġproperty Ċ Ġ* Ġ< tt > prefs . File Preferences Factory . file </ tt > Ċ Ġ* Ċ Ġ* Ġ@ author ĠDavid ĠC ro ft Ġ([ www . david c . net ]( http :// www . david c . net )) Ċ Ġ* Ġ@ version Ġ$ Id : ĠFile Preferences Factory . java Ġ 2 8 2 Ġ 2 0 0 9 - 0 6 - 1 8 Ġ 1 7 : 0 5 : 1 8 Z Ġd avid Ġ$ Ċ Ġ*/ Ċ class ĠFile Preferences Factory Ġ: ĠPreferences Factory Ġ{ ĊĠĠĠ Ġvar Ġroot Preferences : ĠPreferences ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġsystem Root (): ĠPreferences Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġuser Root () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġuser Root (): ĠPreferences Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( root Preferences Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug Ġ{" Instanti ating Ġroot Ġpreferences "} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Preferences Ġ= ĠFile Preferences ( null , Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġroot Preferences !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject : K Log gable Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSYSTEM _ PROPERTY _ FILE Ġ= Ġ" prefs . File Preferences Factory . file " ĊĊĠĠĠĠĠĠĠ Ġ/* public Ġstatic Ġvoid Ġmain ( String [] Ġargs ) Ġthrows ĠBack ing Store Exception ĊĠ Ġ{ ĊĠĠĠ ĠSystem . setProperty (" java . util . prefs . Preferences Factory ", ĠFile Preferences Factory . class . getName ()); ĊĠĠĠ ĠSystem . setProperty ( SYSTEM _ PROPERTY _ FILE , Ġ" my prefs . txt "); ĊĠĊĠĠĠ ĠPreferences Ġp Ġ= ĠPreferences . user Node For Package ( File Preferences Factory . class ); ĊĠĊĠĠĠ Ġfor Ġ( String Ġs Ġ: Ġp . keys ()) Ġ{ ĊĠĠĠĠĠ ĠSystem . out . println (" p [" Ġ+ Ġs Ġ+ Ġ" ]=" Ġ+ Ġp . get ( s , Ġnull )); ĊĠĠĠ Ġ} ĊĠĊĠĠĠ Ġp . put Boolean (" hi ", Ġtrue ); ĊĠĠĠ Ġp . put (" Number ", ĠString . valueOf ( System . currentTimeMillis ())); ĊĠ Ġ}*/ Ġ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġvar Ġpreferences File : ĠFile ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġprefs File Ġ= ĠSystem . getProperty ( SYSTEM _ PROPERTY _ FILE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( prefs File Ġ== Ġnull Ġ|| Ġprefs File . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprefs File Ġ= ĠSystem . getProperty (" user . home ") Ġ+ ĠFile . separator Ġ+ Ġ". file prefs " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= ĠFile ( prefs File ). absolute File ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error Ġ{" Preferences Ġfile Ġis Ġ$ field "} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfield ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġlogger : ĠK Logger ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġlogger () ĊĠĠĠ Ġ} Ċ }