Java tutorial
/* * Copyright Javelin Software, All rights reserved. */ import java.util.*; import java.util.prefs.*; /** * Utility class for prefs * * @author Robin Sharp */ public class PrefsUtil { /** * Clear all the node */ public static void clear(Preferences preferences, String key) { try { if (preferences.nodeExists(key)) { preferences.node(key).clear(); } } catch (BackingStoreException bse) { bse.printStackTrace(); } } /** * Remove the node */ public static void remove(Preferences preferences, String key) { try { if (preferences.nodeExists(key)) { preferences.node(key).removeNode(); } } catch (BackingStoreException bse) { bse.printStackTrace(); } } /** * Puts a list into the preferences. */ public static void putMap(Preferences preferences, Map map, String key) { putMap(preferences.node(key), map); } /** * Puts a list into the preferences. */ public static void putMap(Preferences preferences, Map map) { if (preferences == null) { throw new IllegalArgumentException("Preferences not set."); } for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { Map.Entry entry = (Map.Entry) iter.next(); Object value = entry.getValue(); preferences.put(entry.getKey().toString(), value == null ? null : value.toString()); } } /** * Gets a Map from the preferences. */ public static Map getMap(Preferences preferences, String key) { return getMap(preferences.node(key)); } /** * Gets a Map from the preferences. */ public static Map getMap(Preferences preferences) { if (preferences == null) { throw new IllegalArgumentException("Preferences not set."); } Map map = new HashMap(); try { String[] keys = preferences.keys(); for (int index = 0; index < keys.length; index++) { map.put(keys[index], preferences.get(keys[index], null)); } } catch (BackingStoreException bse) { bse.printStackTrace(); } return map; } /** * Puts a list into the preferences starting with "0" then "1" */ public static void putList(Preferences preferences, List list, String key) { putList(preferences.node(key), list); } /** * Puts a list into the preferences starting with "0" then "1" */ public static void putList(Preferences preferences, List list) { if (preferences == null) { throw new IllegalArgumentException("Preferences not set."); } //System.out.println( "LIST=" + list ); for (int index = 0; list != null && index < list.size(); index++) { Object value = list.get(index); preferences.put("" + index, value == null ? null : value.toString()); } } /** * Gets a List from the preferences, starting with "0", then "1" etc */ public static List getList(Preferences preferences, String key) { return getList(preferences.node(key)); } /** * Gets a List from the preferences, starting with "0", then "1" etc */ public static List getList(Preferences preferences) { if (preferences == null) { throw new IllegalArgumentException("Preferences not set."); } List list = new ArrayList(); for (int index = 0; index < 1000; index++) { String value = preferences.get("" + index, null); if (value == null) break; //System.out.println( ""+index+ " " + value ); list.add(value); } return list; } public static void main(String[] args) { try { Map map = new HashMap(); map.put("0", "A"); map.put("1", "B"); map.put("2", "C"); map.put("3", "D"); map.put("5", "f"); Preferences prefs = Preferences.userNodeForPackage(String.class); String RECENT_FILES = "XXX"; List recentFiles = PrefsUtil.getList(prefs, RECENT_FILES); PrefsUtil.clear(prefs, RECENT_FILES); PrefsUtil.putList(prefs, recentFiles, RECENT_FILES); //System.out.println( PrefsUtil.getList( prefs, RECENT_FILES ) ); } catch (Exception e) { e.printStackTrace(); } } }