Does Java have something similar to Cocoa's NSUserDefaults?

▼魔方 西西 提交于 2019-12-06 06:20:13

问题


Mac OS X and iOS have a nice little class called NSUserDefaults. It's a singleton that lets you store strings, arrays, and primitives, and you can always implement some methods to add custom objects to it. It's super useful when you need to store a quick setting without dealing with file manipulations (for example, storing the last picked font name).

Does Java have something simple like this? I'd like to be able to store a user's last settings to reload a similar state when the program reloads, but I'm not sure what the best way to do this is in Java.


回答1:


Yes, you can use the java.util.prefs API. How do I save preference user settings in Java? and What is the best way to save user settings in java application? have some helpful info. To get you started:

[[NSUserDefaults standardUserDefaults] setString:@"some string" forKey:@"some_key"];

becomes

Preferences prefs = Preferences.userNodeForPackage(this);
prefs.put("some_key", "some string");

and

[[NSUserDefaults standardUserDefaults] stringForKey:@"some_key"];

becomes

Preferences prefs = Preferences.userNodeForPackage(this);
prefs.get("some_key");



回答2:


No. The closest thing is the property file system. You can have a property file (which is a key-value file). Generally, they need to be in the classpath of the java program you're running. You can also create property files (or xml files) anywhere you want to in the file system (like a known good place). NSUserDefaults uses something like a p-list stored somewhere in the your home directory's Library, using a standard naming an directory path. You would have to come up with your own standard in Java.



来源:https://stackoverflow.com/questions/11380812/does-java-have-something-similar-to-cocoas-nsuserdefaults

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!