Re: Save user data where?
Jason Cavett wrote:
On Apr 18, 5:53 pm, angrybald...@gmail.com wrote:
On Apr 18, 2:36 pm, Jason Cavett <jason.cav...@gmail.com> wrote:
On Apr 18, 1:36 pm, Thomas Fritsch <i.dont.like.s...@invalid.com> wrote:
Sounds like you need java.util.prefs.Preferences.
You can get a handle to the user's preferences by:
Preferences prefs =
Preferences.userNodeForPackage(my.package.Main.class);
Java keeps the user's preferences in a platform-specific place:
(*) for Windows: in a certain user-specific branch of the registry
(*) for Unix/Linux: in a certain hidden file in the user's home dir.
But you don't have to care about those details.
You read/write specific key/value like this:
String value = prefs.get(key);
prefs.get(key, value);
For more details see the API docs
<http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/Preferences.html>
<http://java.sun.com/j2se/1.5.0/docs/api/java/util/prefs/Preferences.h...)>
There wouldn't be any problem with permissions using this method,
would there? (AKA - The user can't write to the registry.)
The default Sun implementation on Windows stores preferences in a node
under HKEY_CURRENT_USER, which is always writable by the current user
and is normally made part of the user's profile, whether local or
roaming.
So no, not really.
By "normally" do you mean that, assuming no problems, I can assume the
settings will be saved on a per-user basis?
Yes because for one thing the registry hive where the data is accessible
for the current user is HKEY_CURRENT_USER (imagine that) so it would
have to be on a per user basis because there is only one current user
allowed with Windows XP. Plus, if you look into HKEY_USERS hive in the
registry it will list all the SIDs of the users who have logged into the
PC whose registry you are currently viewing. A user's registry data is
part of the users profile so it will follow them (stored in ntuser.dat
in every user's profile) and when they log in the HKEY_CURRENT_USER hive
is just a link to the real location under HKEY_USERS. It is possible
for permissions to be screwed up on HKEY_CURRENT_USER such that a user
can't retain settings (like Windows Explorer folder view preferences)
but normally each user can read/write to that location because they need
to.
I use the Preferences API in my program to store connection settings to
a remote server in the registry for each other based on a recommendation
I received from this group a few months ago. The API is so easy and
after I experimented with it I was able to implement my code very quickly.