Java有类似于Cocoa的NSUserDefaults吗?

时间:2012-07-08 05:12:47

标签: java persistence

Mac OS X和iOS有一个很好的小类叫NSUserDefaults。它是一个允许您存储字符串,数组和基元的单例,并且您始终可以实现一些方法来向其添加自定义对象。当您需要存储快速设置而不处理文件操作(例如,存储最后选择的字体名称)时,它非常有用。

Java有这么简单吗?我希望能够存储用户的最后设置,以便在程序重新加载时重新加载类似的状态,但我不确定在Java中执行此操作的最佳方法是什么。

2 个答案:

答案 0 :(得分:8)

是的,您可以使用java.util.prefs APIHow do I save preference user settings in Java?What is the best way to save user settings in java application?有一些有用的信息。为了帮助您入门:

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

变为

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

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

变为

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

答案 1 :(得分:-2)

没有。最接近的是属性文件系统。您可以拥有属性文件(这是一个键值文件)。通常,它们需要位于您正在运行的java程序的类路径中。您还可以在文件系统中的任何位置创建属性文件(或xml文件)(如已知的好位置)。 NSUserDefaults使用标准命名目录路径,使用存储在主目录库中某处的p列表。您必须在Java中提出自己的标准。