JAVA操作windows注册表

在我们写程序的时候,有时会要求保存一些数据,比如用户名或者别的,但是这样数据又不是保存在程序同一目录下,这样做太明显了,也不太安全,那怎么办呢?这个时候,如果能把数据保存到注册表里面去,那该多好,一来隐蔽,二来方便,不至于在程序目录下生成一大片文件.
在JAVA里面,可以利用java.util.prefs.Preferences来对注册表进行操作,我们先看一下例子吧

/*
 * Test3.java
 * 
 * Created on 2007-9-20, 18:41:41
 * 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package test1;

import java.util.prefs.Preferences;

/**
 *
 * @author hadeslee
 */
public class Test3 {
    
    public static void main(String[] args)throws Exception {
        Preferences pre=Preferences.systemNodeForPackage(Test3.class);
        pre.put("userName", "hadeslee");
        pre.putInt("age", 25);
        pre.flush();
        Preferences now=Preferences.systemNodeForPackage(Test3.class);
        System.out.println(now.get("userName", "为空"));
        System.out.println(now.getInt("age", 0));
        
    }




这是一个最简单的例子,第一句就是根据包得到一个节点,然后把一些值放进去,可以放String,boolean,int,long,float,double等值 ,如果你想存入对象的话,可以把对象序列化成byte[],然后再存进来,然后读也是一样的,我们这样操作就像是在操作一个Map一个,所有的值都是存在这个映射里面.

那么它们保存在哪里呢?

如果选的是systemNode...则保存在[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs]

如果选的是userNode....   则保存在[HKEY_CURRENT_USER\Software\JavaSoft\Prefs]
的子节点下面

你可能感兴趣的:(java,windows)