Я использую пример из https://www.vogella.com/tutorials/JavaPreferences/article.html со следующим кодом:
import java.util.prefs.Preferences;
public class PreferenceTest {
private Preferences prefs;
public void setPreference() {
// This will define a node in which the preferences can be stored
prefs = Preferences.userRoot().node(this.getClass().getName());
String ID1 = "Test1";
String ID2 = "Test2";
String ID3 = "Test3";
// First we will get the values
// Define a boolean value
System.out.println(prefs.getBoolean(ID1, true));
// Define a string with default "Hello World
System.out.println(prefs.get(ID2, "Hello World"));
// Define a integer with default 50
System.out.println(prefs.getInt(ID3, 50));
// now set the values
prefs.putBoolean(ID1, false);
prefs.put(ID2, "Hello Europa");
prefs.putInt(ID3, 45);
// Delete the preference settings for the first value
prefs.remove(ID1);
}
public static void main(String[] args) {
PreferenceTest test = new PreferenceTest();
test.setPreference();
}
}
и ниже - выходные данные последовательных прогонов:
1) начальный запуск для сохранения настроек:
верно
23 апреля 2019 г. 10:56:22 java.util.prefs.WindowsPreferences
Привет, мир
ВНИМАНИЕ: Не удалось открыть / создать привилегированный корневой узел prefs Software \ JavaSoft \ Prefs в корневом каталоге 0x80000002. Windows RegCreateKeyEx (...) вернул код ошибки 5.
50
2) второй прогон, который уже читает значения, записанные при первом прогоне:
верно
23 апреля 2019 г. 10:56:57 java.util.prefs.WindowsPreferences
Привет Европа
ВНИМАНИЕ: Не удалось открыть / создать привилегированный корневой узел prefs Software \ JavaSoft \ Prefs в корневом каталоге 0x80000002. Windows RegCreateKeyEx (...) вернул код ошибки 5.
45
Вы можете заметить, что значения int и String извлекаются правильно и не заменяются значениями по умолчанию, в то время как логическое значение не извлекается и заменяется значением по умолчанию (т. Е. Оба выхода дают значение true, тогда как ожидание было достичь ложного при втором запуске).