<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    千里冰封
    JAVA 濃香四溢
    posts - 151,comments - 2801,trackbacks - 0

    在我們寫程序的時候,有時會要求保存一些數據,比如用戶名或者別的,但是這樣數據又不是保存在程序同一目錄下,這樣做太明顯了,也不太安全,那怎么辦呢?這個時候,如果能把數據保存到注冊表里面去,那該多好,一來隱蔽,二來方便,不至于在程序目錄下生成一大片文件.
    在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]
    的子節點下面


    不過話又說回來,如果我們想程序跨平臺的話,這樣是不太好的,我在linux上試過,每次程序退出,我設定的值都沒有了,因為linux下面沒有像windows一樣的注冊表,不知道linux下SUN是怎么實現的,為了可移植性,最好還是用java.uitl.Properties這個類,根據一個文本映射文件來進行值的操作,不過它也有不好的地方,它只能存入String對象,像byte[]就存不了了,如果要存的東西太復雜的話,干脆直接用數據庫吧.:)


    盡管千里冰封
    依然擁有晴空

    你我共同品味JAVA的濃香.
    posted on 2007-09-20 19:15 千里冰封 閱讀(5220) 評論(12)  編輯  收藏 所屬分類: JAVASE

    FeedBack:
    # re: JAVA操作windows注冊表
    2007-09-20 21:39 | teasp
    good.  回復  更多評論
      
    # re: JAVA操作windows注冊表
    2007-09-21 08:10 | Pande
    java.util.prefs.Preferences是跨平臺的,linux下保存在home目錄下的一個文件里  回復  更多評論
      
    # re: JAVA操作windows注冊表
    2007-09-21 09:13 | 千里冰封
    我在ubuntu下面試了,確實是保存不了,我每次都讀不到  回復  更多評論
      
    # re: JAVA操作windows注冊表
    2007-09-21 10:28 | 辛科
    這保存在注冊表的哪個地方了???  回復  更多評論
      
    # re: JAVA操作windows注冊表
    2007-09-21 10:32 | 千里冰封
    @辛科
    如果選的是systemNode...則保存在[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs]

    如果選的是userNode....則保存在
    [HKEY_CURRENT_USER\Software\JavaSoft\Prefs]
    的子節點下面  回復  更多評論
      
    # re: JAVA操作windows注冊表
    2007-09-21 11:51 | 蔣家狂潮
    新鮮,收藏了  回復  更多評論
      
    # re: JAVA操作windows注冊表
    2007-09-23 11:26 | jht
    呵呵,挺意思  回復  更多評論
      
    # re: JAVA操作windows注冊表
    2007-09-24 11:11 | Ming
    先收藏了,用時再細看  回復  更多評論
      
    # re: JAVA操作windows注冊表
    2007-12-28 15:23 | d
    sddsdddd  回復  更多評論
      
    # re: JAVA操作windows注冊表
    2008-05-09 19:26 | heavens
    覺得用jni更好些,java自帶的prefs包太受局限了  回復  更多評論
      
    # re: JAVA操作windows注冊表
    2008-12-03 23:20 | mykoma
    這是第二次來到您的博客...

    只能說:很厲害  回復  更多評論
      
    # re: JAVA操作windows注冊表
    2008-12-03 23:21 | mykoma
    希望您能夠加點注釋..那樣看著會更容易懂  回復  更多評論
      
    主站蜘蛛池模板: 国产午夜亚洲精品| 在线视频免费观看爽爽爽| AV无码免费永久在线观看| 精品视频免费在线| 国产精品亚洲精品青青青| 国产亚洲成av片在线观看 | 久久久久亚洲精品日久生情 | 免费精品国产自产拍在线观看| 亚洲AⅤ无码一区二区三区在线| 日本亚洲免费无线码| 久久国产乱子伦精品免费不卡| 九一在线完整视频免费观看| 亚洲国产成人综合精品| 亚洲午夜一区二区电影院| 亚洲AV日韩AV永久无码绿巨人 | 伊人免费在线观看| 免费国产草莓视频在线观看黄| 亚洲欧美日韩中文字幕在线一区 | 中文字幕无码免费久久99| 精品无码人妻一区二区免费蜜桃| 一级特黄色毛片免费看| 牛牛在线精品观看免费正| 性色av极品无码专区亚洲| 亚洲欧美乱色情图片| 亚洲一区在线免费观看| 亚洲白嫩在线观看| 亚洲成人高清在线观看| 4480yy私人影院亚洲| 亚洲黄色在线视频| 亚洲色图.com| 亚洲制服丝袜在线播放| 亚洲一级毛片免观看| 天堂亚洲国产中文在线| 日本亚洲色大成网站www久久| 亚洲一区在线视频| 亚洲精品理论电影在线观看| 亚洲AV无码一区二区三区性色 | 成人永久免费高清| 国产一区二区免费在线| 无码专区一va亚洲v专区在线| 亚洲国产精品一区二区九九|