Java Cum se utilizează API-ul de preferințe? Unde sunt stocate aceste variabile? (Programare, Java, Preferințe)

stackoverflow a intrebat.

Să spunem că am următoarele

Preferences prefs = Preferences.userRoot().node(this.getClass().getName());

String ID1 = "Test1";

System.out.println(prefs.getBoolean(ID1, true));

prefs.putBoolean(ID1, false);

//prefs.remove(ID1);
  1. Este această variabilă persistentă data viitoare când îmi execut programul?
  2. Unde se stochează aceste variabile?
  3. Care este modalitatea corectă de utilizare a acesteia?
  4. Este abordarea mai bună decât utilizarea fișierelor de proprietăți?

Comentarii

1 răspunsuri
Qwerky
  1. Da, valoarea este persistentă, dar numai pentru utilizator. Nu va fi acolo pentru alți utilizatori.
  2. Acest lucru este specific sistemului de operare. Pentru Windows folosește registrul, pentru Linux cred că folosește fișiere ascunse în user root, deși nu sunt 100% sigur.
  3. Întrebarea dvs. oferă un exemplu destul de bun.
  4. Acesta este diferitnu mai bine. Preferințele sunt o modalitate de a stoca în mod transparent setările pentru o aplicație. Aceste setări pot fi actualizate în timp de execuție de către un utilizator (de exemplu, ați putea utiliza preferințele pentru a stoca setări specifice utilizatorului). Preferințele nu sunt menite să fie editabile în afara aplicației. Fișierele de proprietăți tind să stocheze setări dure specifice unei aplicații. Aceste setări sunt aceleași pentru fiecare utilizator și tind să nu se schimbe prea des. Fișierele de proprietăți sunt fișiere text și tind să însoțească o aplicație în momentul implementării. Le puteți edita cu ușurință cu ajutorul unui editor de text. Este destul de rar ca o aplicație să actualizeze fișierele de proprietăți.

Comentarii

  • Rețineți că vorbim aici de utilizatorii sistemului de operare… deci o aplicație care rulează sub utilizatorul „tomcat” servește aceleași preferințe de „utilizator” pentru toți utilizatorii web ai aplicației respective. –  > Por Geert Schuring.
  • Pentru #1, această valoare este pentru utilizator din cauza .userRoot(). Pentru a o salva pentru toți utilizatorii, utilizați .systemRoot() –  > Por Ron.