Java操作Ini文件


ini 文件是Initialization File的縮寫,即初始化文件,是windows的系統配置文件所采用的存儲格式,統管windows的各項配置,一般用戶就用windows提供的各項圖形化管理界面就可實現相同的配置了。但在某些情況,還是要直接編輯ini才方便,一般只有很熟悉windows才能去直接編輯。開始時用於WIN3X下面,WIN95用注冊表代替,以及后面的內容表示一個節,相當於注冊表中的鍵。

具體Format

INI文件由節(Section)、參數Item:鍵(key)、值(value)組成。

  • data
[section name]

參數(鍵=值)
name=value
  • 注解

注解使用分號表示(;)。在分號后面的文字,直到該行結尾都全部為注解。

; comment textINI文件的數據格式的例子(配置文件的內容) [Section1 Name]
KeyName1=value1
KeyName2=value2

因為INI文件可能是項目中共用的,所以使用[Section Name]段名來區分不同用途的參數區。

Java操作

在常規的WIn平台下,ini文件的默認編碼格式是ANSI。

不同的國家和地區制定了不同的標准,由此產生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的編碼標准。這些使用多個字節來代表一個字符的各種漢字延伸編碼方式,稱為 ANSI 編碼。在簡體中文Windows操作系統中,ANSI 編碼代表 GBK 編碼;在繁體中文Windows操作系統中,ANSI編碼代表Big5;在日文Windows操作系統中,ANSI 編碼代表 Shift_JIS 編碼。
不同 ANSI 編碼之間互不兼容,當信息在國際間交流時,無法將屬於兩種語言的文字,存儲在同一段 ANSI 編碼的文本中。

ANSI在我們國內的具體編碼實現實際上是GB2312(或GBK),所以我們對這種格式的文本數據進行操作即可。

Java INI Package (JavaINI) 是一個 Java 語言用來讀寫 INI 文件的工具包.Project Location,以下稱為Ini開源包.

Ini開源包默認的編碼格式是ASCII,也就是默認只操作范圍內的128個字符,這會大大限制Ini開源包的功能。通過修改org.dtools.ini包的IniFileWriter類改屬性值ENCODING,修改成適合我們的編碼。GB2312、GBK在國內使用,因為win平台建立的ini文件默認就是ANSI編碼,所以推薦修改為這兩種編碼格式。如果想要國際化,則可將ENCODING修改為UTF-8即可。

  • 讀操作
IniFile ini = new BasicIniFile(false);//不使用大小寫敏感
public void readContent(){
        IniFileReader reader = new IniFileReader(ini, file);
        try {
            reader.read();
        } catch (IOException e) {
            e.printStackTrace();
        }
        //獲取ini文件的所有Section
        for(int i=0;i<ini.getNumberOfSections();i++){
            IniSection sec = ini.getSection(i);
            //獲取每個Section的Item
            System.out.println("---- " + sec.getName() + " ----");
            for(IniItem item : sec.getItems()){
                System.out.println(item.getName() + " = " + item.getValue());
            }
        }
    }
  • 寫操作
public void writeContent(){
        //創建一個數據Section,在本例中Section名為 config
        IniSection dataSection = new BasicIniSection( "config" );
        ini.addSection( dataSection );

        //在上面的Section中添加Item,包括name、sex、age
        IniItem nameItem = new IniItem( "name" );
        nameItem.setValue("煙雨江南");
        dataSection.addItem( nameItem );

        IniItem ageItem = new IniItem( "age" );
        ageItem.setValue("999999");
        dataSection.addItem( ageItem );

        IniItem sexItem = new IniItem( "sex" );
        sexItem.setValue("男");
        dataSection.addItem( sexItem );


        //將數據寫入到磁盤
        IniFileWriter writer=new IniFileWriter(ini, file);
        try {
            writer.write();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM