Java利用Preferences设置个人偏好

Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好。而这些信息个人理解应该就是存储在系统的注册表中。

下面我们来学习一下Java中的Preferences的API; 概述:

本文将介绍自jdk1.4版本后可用的java的Preferences. Java的Preferences API提供系统的方法来处理用户和系统的偏好及数据配置, 例如.保存用户设置,记住一个文本框的最后一个值等. 用Java的Preference保存的信息被存储在用户本地的机器上,这些信息将会被这个程序重复使用.

我们并不希望Java Preferences API来保存应用数据。

java Preference API减轻了程序员编写代码来保存跨平台程序的配置信息的负担。

1. Java Preferences API 1.1. 介绍 The Preferences API 提供一种系统的方法来处理用户的偏好设置信息,例如.保存用户设置, 记住某个文本框的最后一个值等.

Preferences 是一个可以为任意名字的键/值对. 值可以为布尔型,字符型, 其他简单的数据类型,如int. Preferences 通过get和set来获取和设置偏好信息,且get的方法可设置一个默认值,当要获取的键未被设置值时,就返回此默认值.

1.2. 数据的实际存储 数据的实际存储是依赖于操作系统平台的, 例如.在Windows 下面是使用注册表来保存这些信息,而在Linux下面是使用用户的home目录下面的一个隐藏文件来存储的.

2. API使用 java.util.prefs.Preferences 很容易使用. 你不得不定义一个节点来存储数据. 接下来就可以使用get和set的方法. 第二个参数是默认值,即当找不到值时,得到的就是这个默认值了, 例如. 如果preference的值还未设置, 那么将会返回这个默认值.

创建代码如下:

import java.util.prefs.Preferences;
public class PreferenceTest {
private Preferences prefs;
public void setPreference() {
// This will define a node in which the preferences can be stored
prefs = Preferences.userRoot().node(this.getClass().getName());
String ID1 = "Test1";
String ID2 = "Test2";
String ID3 = "Test3";
// First we will get the values
// Define a boolean value
System.out.println(prefs.getBoolean(ID1, true));
// Define a string with default "Hello World
System.out.println(prefs.get(ID2, "Hello World"));
// Define a integer with default 50
System.out.println(prefs.getInt(ID3, 50));
// Now set the values
prefs.putBoolean(ID1, false);
prefs.put(ID2, "Hello Europa");
prefs.putInt(ID3, 45);
// Delete the preference settings for the first value
prefs.remove(ID1);
}
public static void main(String[] args) {
PreferenceTest test = new PreferenceTest();
test.setPreference();
}
}

Java利用Preferences设置个人偏好的更多相关文章

  1. java利用反射机制判断对象的属性是否为空以及获取和设置该属性的值

    1.java利用反射机制判断对象的属性是否为空: Map<String,String> validateMap = new LinkedHashMap<String, String& ...

  2. java 利用spring JavaMailSenderImpl发送邮件,支持普通文本、附件、html、velocity模板

    java 利用spring JavaMailSenderImpl发送邮件,支持普通文本.附件.html.velocity模板 博客分类: Java Spring   本文主要介绍利用JavaMailS ...

  3. 谈谈Java利用原始HttpURLConnection发送POST数据

    这篇文章主要给大家介绍java利用原始httpUrlConnection发送post数据,设计到httpUrlConnection类的相关知识,感兴趣的朋友跟着小编一起学习吧 URLConnectio ...

  4. Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题 swfUpload多文件上传

    Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题(转) 我们都知道普通的文件上传是通过表单进行文件上传的,还不能达到异步上传的目的.通过使用某些技术手段,比如jqu ...

  5. loadrunner 运行脚本-Run-time Settings之Preferences设置

    运行脚本-Run-time Settings之Preferences设置 by:授客 QQ:1033553122 打开Preferences设置对话框,这里提供了对运行时的参数选择设置 Enable ...

  6. 【转】Java利用反射机制访问私有化构造器

    Java利用反射机制访问私有化构造器 博客分类: java   我们都知道,当一个类的构造方法被设为私有的时候(private),在其他类中是无法用new来实例化一个对象的. 但是有一种方法可以把带有 ...

  7. 【转载】 java利用snmp4j包来读取snmp协议数据(Manager端)

    https://www.cnblogs.com/xdp-gacl/p/4187089.html http://doc.okbase.net/yuanfy008/archive/265663.html ...

  8. JAVA–利用Filter和session防止页面重复提交

    JAVA–利用Filter和session防止页面重复提交解决思路:1 用户访问表单页面,先经过过滤器,过滤器设置一个随机id作为token令牌, 并将该token放入表单隐藏域中.2 表单响应到浏览 ...

  9. Redis入门和Java利用jedis操作redis

    Redis入门和Java利用jedis操作redis Redis介绍 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - val ...

随机推荐

  1. php bom \ufeff

    2015年5月29日 16:50:56 星期五 五月的最后一个周五............. 前两天遇到一个问题 PHP 返回json数据, 其他人死活解析不出来 json_last_error(); ...

  2. UrlEncoder url编码

    public static string PercentEncode(string s)        {            var bytes = Encoding.UTF8.GetBytes( ...

  3. winrt获取文件MD5码

    //小文件 public static string ComputeMD5(byte[] bytes) { var alg = HashAlgorithmProvider.OpenAlgorithm( ...

  4. pgbouncer介绍

    一.Pgbouncer 的介绍 Pgbouncer是一个针对PostgreSQL数据库的轻量级连接池,任何目标应用都可以把 pgbouncer 当作一个 PostgreSQL 服务器来连接,然后pgb ...

  5. HTML DOM scale() 方法

    语法 scale(sx, sy) 参数 参数 描述 sx, sy 水平和垂直的缩放因子. 描述 scale() 方法为画布的当前变换矩阵添加一个缩放变换.缩放通过独立的水平和垂直缩放因子来完成.例如, ...

  6. Silverlight 动画详解

    Animation规则 基于时间:你设置动画的初始状态,最终状态,及持续时间,Silverlight会计算帧速率. 作用于属性(properties):一个Silverlight动画只能做一件事情,在 ...

  7. 打开VS2012的创建单元测试功能

    在VS2010中,在类中点击右键,有一个创建创建单元测试命令,可以很方便的生成单元测试项目和代码.但不知道为什么VS2012反而没有这个功能. 网上搜了一下,好在这个功能是可以通过配置打来的. 传送门 ...

  8. 忘记Mysql登录密码

    1,使用安全模式跳过验证: 如果 Mysql在运行,Kill掉. 如果mysqld_safe无法启动,可用管理员权限sudo . 2,本地登录: 启动Mysql 3,修改密码: 5.7之后, 更改密码 ...

  9. EasyUI中控件汉化问题

    --BY ZYZ 我在使用EasyUI的过程中,遇到了控件无汉化的情况,如下图. 这么多洋文看着觉得挺烦的.时间居然是月日年格式的,这样可不行,得改. 重写控件代码?别,那能是我这种低级代码C-V客能 ...

  10. 数据存储-CoreData总结

    CoreData /*英译  Entity:实体 Attributes:属性 binary:二进制 persistent:持续化 coordinator:协调者 meging:合并 configura ...