Klasa Preferences. Lokalizacja pliku XML.

0

Mam poniższy kod:

 package rnest.PREFS.pak1;

import java.util.prefs.Preferences;

public class PrefsBody {
	
	private Preferences pref;
	private int liczba;
	
	public PrefsBody(){
		
		liczba = 0;
	        pref = Preferences.userNodeForPackage(this.getClass());
	
	}
	
	public void zapiszPrefs(int[] licz){
		
		for(int i = 0; i < licz.length; i++){
			
			pref.putInt("liczba" + (i + 1), licz[i]);
			
		}
		
	}
	
	public void odczytajPrefs(String s){
		int numer = 0;
		System.out.println("Zapisana preferencja: " + pref.getInt(s, numer));
	}
	
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int tab[] = {10, 20, 30};
		
		PrefsBody pb = new PrefsBody();
		//pb.zapiszPrefs(tab);
		pb.odczytajPrefs("liczba1");
		pb.odczytajPrefs("liczba");
		
	}

}

Ostatnia linia kodu nie jest błędem - poprzednio miałem w programie zadeklarowaną wartość int = -500. Obecnie takiej wartości brak, aczkolwiek jest ona wyświetlana w konsoli po podaniu argumentu "liczba" do metody odczytajPrefs(). Co świadczy o tym, że int skojarzony ze stringiem "liczba" GDZIEŚ został zapisany(skoro wartość -500 się pojawia) oraz że ten prosty program działa.
I tutaj moje pytanie - gdzie jest zapisywany przez obiekt klasy Preferences plik z preferencjami. Podejrzewam, że jest to XML. Ale nie potrafię go zlokalizować ...

1

To nie takie proste ;P To zależy od systemu operacyjnego, jego wersji, nawet od jego 'bitowości'. Niestety to nawet nie musi być XML, w Windowsie to zdaje się w rejestrze gdzieś siedzi, ale gdzie dokładnie to możesz poszukać tutaj http://stackoverflow.com/questions/4947555/where-are-the-java-preferences-stored-in-windows-7

0

Słuszna racja. W Windows 8 jest tak:

user image

1 użytkowników online, w tym zalogowanych: 0, gości: 1