<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无码之国产精品| 国产免费黄色大片| 亚洲女人影院想要爱| 97在线视频免费| 久久久久久国产精品免费免费男同 | a级毛片毛片免费观看久潮喷| 国产亚洲一卡2卡3卡4卡新区| 亚洲国产成人91精品| 成全视频在线观看免费高清动漫视频下载 | h视频在线观看免费网站| 亚洲国产精品无码久久九九大片| 无码一区二区三区AV免费| 亚洲天天在线日亚洲洲精| 免费看国产精品麻豆| 少妇太爽了在线观看免费视频 | 亚洲成年轻人电影网站www| 又粗又大又长又爽免费视频| 国内精自视频品线六区免费| 久久成人a毛片免费观看网站| 一级人做人a爰免费视频| 美女被艹免费视频| 日日摸夜夜添夜夜免费视频| 亚洲欧洲AV无码专区| 亚洲欧美日韩一区二区三区| 国产精品亚洲一区二区麻豆| 亚洲色欲啪啪久久WWW综合网| 亚洲中文字幕无码中文| 国产精品亚洲精品日韩电影| 日韩亚洲翔田千里在线| 国产亚洲精品91| 国产乱妇高清无乱码免费| 日韩精品免费在线视频| 久久久久成人片免费观看蜜芽 | 亚洲导航深夜福利| 精品国产日韩亚洲一区| 在线播放高清国语自产拍免费| 在线看片免费人成视频播| 精品熟女少妇aⅴ免费久久| AAA日本高清在线播放免费观看|