亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

腳本引擎之----讀取INI配置文件

2019-11-18 16:11:39
字體:
來源:轉載
供稿:網友

為什么要使用J2ME來讀取INI(配置)文件呢?在單機版游戲當中,使用INI文件來讀取相關命令實屬多余,但是在編寫網絡游戲時,由客戶端讀取從服務器傳來的INI文件流就顯得相當重要了。因為手機游戲客戶端是寫死的程序,不可能實現像PC網絡游戲那樣進行下載客戶端的升級。

因此,將一些經常需要改動的游戲元素,如:NPC屬性,地圖屬性等保存到服務器端,在改動的時候只需要簡單地改變服務器端保存的INI文件內容即可,而手機客戶端只需要解析由服務器傳過來的INI文件流。

import java.io.*;

import java.util.*;

 

public class ConfigFile

{

  PRivate String sCon;

  private String str = null;

  //構造函數

  public ConfigFile()

  {

  }

 

  /**

   * 功能: 讀取文件數據

   * @param sFile String INI文件名

   * @param sIndex String []中的內容

   * @param sContent String 內容索引

   * @return String 內容索引的值(String)

   * @throws IOException

   */

  public String readFile(String sFile, String sIndex, String sContent) throws

      IOException

  {

    InputStream input;

    Vector v1 = new Vector(); //sIndex的值

    Vector v2 = new Vector(); //sContent的值

    int p, q, l = 0, i; //保存各字符的索引

    String argIndex1 = ""; //中間值

    String num1 = ""; //中間值

    input = getClass().getResourceAsStream(sFile);

    str = this.asciiToUTF(input);

    //將全部字符串分別保存到兩個String對象中

    String strOne = str;

    //功能:將流中"["和"]"中的內容全部取出并存放到Vector中

    //(char)91和(char)93分別返回"["和"]"

    while ((p = str.indexOf("[")) != -1 &&

           (q = str.indexOf("]")) != -1)

    {

      //num1=str.substring(p+1,q);

      v1.addElement(str.substring(p + 1, q));

      str = str.substring(q + 1);

    }

    //讀取sIndex下的索引內容

    //i循環實現遍歷所有"["和"]"中的內容

    for (i = 0; i < v1.size(); i++)

    {

      //檢查所遍歷的數據是否等于參數sIndex的值

      if (v1.elementAt(i).equals(sIndex) == true)

      {

        //strOne.indexOf(sIndex)得到全部數據中第一個sIndex的索引值

        //+sIndex.length()后,得到sIndex最后一個字節的索引值

        //+2后,去除字符"]"和回車符,但保留換行符

        //利用substring將換行符前的字符全部刪除并保存到argIndex1中

        argIndex1 = strOne.substring(strOne.indexOf(sIndex) + sIndex.length() +

                                     2);

        if ((p = argIndex1.indexOf("[")) != -1)

        {

          //從新字符串的第一個字節開始,讀到"["的前兩個字節為止,即回車符

          num1 = argIndex1.substring(0, p - 1);

          //r返回換行符的索引值,s返回"="號的索引值,l返回回車符的索引值

          while ((p = num1.indexOf((char)10)) != -1 &&

                 (q = num1.indexOf("=")) != -1 &&

                 (l = num1.indexOf((char)13)) != -1)

          {

            //從換行符后的第一個字節開始讀取直到"="前面的字節為止

            //num3=num1.substring(r+1,s);

            v2.addElement(num1.substring(p + 1, q));

            //截取從換行符開始到后面的所有字符的新字符串

            num1 = num1.substring(l + 1);

          }

          //讀取sContent下的內容

          //v2.size()返回當前[]下的行數

          for (i = 0; i < v2.size(); i++)

          {

            //檢查所遍歷的數據是否等于參數sContent的值

            if (v2.elementAt(i).equals(sContent) == true)

            {

              //strTwo.indexOf(sContent)找出sContent的索引

              //+sContent.length()返回sContent最后一個字符的索引值

              //獲得之后所有字符組成新的字符集

              num1 = argIndex1.substring(argIndex1.indexOf(sContent) +

                                         sContent.length());

              if ((p = num1.indexOf("=")) != -1 &&

                  (q = num1.indexOf((char)13)) != -1)

              {

                //截取"="后面和回車符前的字符串

                sCon = num1.substring(p + 1, q);

              }

            }

          }

        }

        break;

      }

    }

    return sCon;

  }

 

  //注意這個地方很重要,這里是轉換中文的處理。如果沒有

  //這個函數,如果文件中包含中文將不能正確執行

  private String asciiToUTF(InputStream inputStream)

  {

    byte[] myData = null;

    String strData = null;

    try

    {

      ByteArrayOutputStream byteArray = new ByteArrayOutputStream();

      int ch = 0;

      while ((ch = inputStream.read()) != -1)

      {

        byteArray.write(ch);

      }

      //將byteArray中的字節全部輸入到myData中

      //byteArray.size()為字節長度

      for (int i = 0; i < byteArray.size(); i++)

      {

        myData = byteArray.toByteArray();

      }

      strData = new String(myData, "UTF-8");

    }

    catch (Exception e)

    {}

    return strData;

  }

}

可以讀取的文件示例:

npc.ini

---------------------------

[1]

name=許偉東

sex=男

[]

 

當然,這只是實現在J2ME中腳本引擎的第一步,后面的我會慢慢寫。

同時,我已經將需要注意的地方寫了注釋,如果您對這方面很感興趣,可以聯系我。


E-mail:weidongxu@vip.sina.com   QQ:70705327
blog :  http:www.sf.org.cn/blog/xuweidong/index.Html

(出處:http://www.49028c.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97在线看免费观看视频在线观看| 成人免费观看49www在线观看| 在线看日韩欧美| 欧美午夜www高清视频| 国产精品自在线| 亚洲天堂av女优| 亚洲欧洲xxxx| 欧美日韩亚洲国产一区| 国内精品在线一区| 国产精品九九久久久久久久| 亚洲成人激情小说| 国产精品午夜国产小视频| 日韩日本欧美亚洲| 97高清免费视频| 国产欧洲精品视频| 亚洲老板91色精品久久| 日韩中文字幕亚洲| 日韩在线视频线视频免费网站| www.亚洲成人| 亚洲天天在线日亚洲洲精| 欧美第一黄网免费网站| 96精品视频在线| 亚洲欧美视频在线| 精品国产91乱高清在线观看| 国产精品视频公开费视频| 日韩成人中文字幕| 欧美日韩激情美女| 亚洲免费人成在线视频观看| 国产成人a亚洲精品| 亚洲精品第一国产综合精品| 最新国产成人av网站网址麻豆| 国产91色在线播放| 精品久久久久久国产91| 日韩视频精品在线| 亚洲天堂av网| 欧美一区视频在线| 中文字幕无线精品亚洲乱码一区| 综合欧美国产视频二区| 国内免费久久久久久久久久久| 亚洲成人精品久久| 成人国产在线激情| 亚洲欧洲xxxx| 成人黄色免费片| 国产中文字幕亚洲| 国语自产精品视频在免费| 日韩电影第一页| 国产小视频91| 欧美在线国产精品| 欧美激情一区二区三区久久久| 91精品国产高清自在线| 日韩视频永久免费观看| 中文字幕在线亚洲| 日本精品一区二区三区在线| 精品久久久久久久大神国产| 中文字幕日韩在线视频| 久久久久久久999精品视频| 久久精品2019中文字幕| 亚洲国产婷婷香蕉久久久久久| 国产激情999| 久久成人在线视频| 久久久久久中文字幕| 亚洲iv一区二区三区| 欧美亚洲成人网| 日韩精品欧美国产精品忘忧草| 欧美第一黄网免费网站| 精品欧美一区二区三区| 91精品啪aⅴ在线观看国产| 国产精品久久久久aaaa九色| 成人精品aaaa网站| 亚洲成av人影院在线观看| 亚洲精品成人网| 成人免费看吃奶视频网站| 国产一区视频在线| 国产欧美va欧美va香蕉在| 亚洲成人1234| 日韩中文字幕国产精品| 欧美一级淫片videoshd| 久久久精品中文字幕| 狠狠色狠狠色综合日日小说| 国产91色在线|| 主播福利视频一区| 日韩av大片免费看| 在线播放亚洲激情| 国产999视频| 在线日韩中文字幕| 欧美日韩国产精品一区二区不卡中文| 久久久久国产精品一区| 亚洲淫片在线视频| 狠狠色噜噜狠狠狠狠97| 777777777亚洲妇女| 欧美国产日韩一区| 日韩在线观看高清| 亚洲跨种族黑人xxx| 欧美日韩成人在线播放| 欧美亚洲成人精品| 国产成人激情视频| 欧美成人三级视频网站| 欧美精品videos另类日本| 亚洲欧美www| 北条麻妃一区二区三区中文字幕| 国产精品久久一区| 狠狠躁18三区二区一区| 精品国产31久久久久久| 日韩在线观看免费av| 欧美激情免费观看| 久久影视三级福利片| 成人黄色短视频在线观看| 国产精品久久99久久| 秋霞成人午夜鲁丝一区二区三区| 日韩av在线免费观看| 国产精品成人国产乱一区| 亚洲国产精品人人爽夜夜爽| 中文字幕不卡在线视频极品| 国产又爽又黄的激情精品视频| 国产aⅴ夜夜欢一区二区三区| 亚洲精品成人免费| 不卡av电影在线观看| 国产+人+亚洲| 国产在线精品播放| 国产精品精品视频一区二区三区| 国产成人拍精品视频午夜网站| 在线成人中文字幕| 欧美成人午夜激情| 欧美一级高清免费| 欧美激情亚洲一区| 亚洲高清福利视频| 91大神在线播放精品| 亚洲国产成人av在线| 亚洲精品资源美女情侣酒店| 黑人精品xxx一区| 国产亚洲欧洲高清| 亚洲国产精品久久久| 欧美午夜美女看片| 欧美大片在线免费观看| 亚洲一区制服诱惑| 亚洲最新视频在线| 亚洲精品二三区| 国产综合色香蕉精品| 亚洲一区二区三区成人在线视频精品| 亚洲第一免费播放区| 国产精品99久久久久久www| 国产婷婷成人久久av免费高清| 亚洲美女又黄又爽在线观看| 日韩精品亚洲元码| 51久久精品夜色国产麻豆| 国产美女精品视频| 亚洲国产欧美久久| 国产精品ⅴa在线观看h| 日韩中文理论片| 久久噜噜噜精品国产亚洲综合| 国产精品日韩久久久久| 欧美在线视频一区| 久久琪琪电影院| 国产精品视频精品| 日本91av在线播放| 国产深夜精品福利| 亚洲欧美在线第一页| 亚洲精品永久免费精品| 欧美成人午夜激情视频| 97成人在线视频| 亚洲free性xxxx护士hd| 久久精视频免费在线久久完整在线看| 国产精品一区二区三| 久久综合伊人77777蜜臀|