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

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

基于MIDP實現ResourceBundle類

2019-11-18 16:07:56
字體:
來源:轉載
供稿:網友
    在MIDP中沒有提供J2SE平臺的ResourceBundle類,因此我自己寫了一個。并通過簡單的MIDlet程序測試成功。主要的目的是為了解決常量定義的問題,如果把GUI中組件的title的等常量放到一個文件里面調試起來會更方便,本文更重要的目的是告訴讀著如何實現在J2ME中遺失的J2SE的類。

    通常我們可以在代碼中直接使用常量值或者是專門定義一個放常量的類,例如下面的樣子:
Form mianForm = new Form("最差"); Form mainForm = new Form(Title.FORMTITLE);第一種情況是最不可取的,如果修改起來很麻煩。下面我提供了一個 ResourceBundle類,它有一個構造器是
public ResourceBundle(String fileName,int size)第一個參數來指定文件的名字,第二個參數是文件中準備存儲多少個選項,一般可以設置的比實際大一些。文件的格式應該是嚴格按照這樣的樣子。
0=ming
1=java
2=hello
3=world
4=digital
5=hahaha

把文件的內容進行分析并讀取到Vector里面的關鍵部分是這樣實現的:
PRivate void readToVector() throws IOException
    {
        InputStream is = this.getInputStreamFromFile();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        int c = 0;
        int index = 0;
        while ((c = is.read()) != -1)
        {
            if (c == '/n' c == '/r')
            {
                String s = baos.toString();
                int i = s.indexOf('=');
                if (i != -1)
                {
                    if (s.substring(0, i).endsWith(String.valueOf(index)))
                    {
                        indexVector.addElement(s.substring(i + 1).trim());
                        index++;
                    } else
                    {
                        throw new IOException("index error");
                    }
                }
                baos.reset();
            } else
            {
                baos.write(c);
            }
        }
具體的使用方法是這樣的
try
{
   ResourceBundle indexBundle = new ResourceBundle("/index.properties",20);
}
catch(IOException e)
{}
String s = indexBundle.getString(3);//任何你想得到的在index.properties中可以找到的title
為了測試這個類的正確性,我寫了一個簡單的MIDlet程序測試成功。注意我是用的Eclipse因此把文件index.properties是放在res目錄里面(如果沒有可以自己新建)下面是代碼,運行結果是最終在textbox里面顯示hello。這是正確的

import java.io.IOException;


import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;


public class IndexMIDlet extends MIDlet
{
    private ResourceBundle indexBundle;
    private Display display;
    private TextBox box;
    
    
    protected void startApp() throws MIDletStateChangeException
    {
        display = Display.getDisplay(this);
        try
        {
            indexBundle = new ResourceBundle("/index.properties",15);
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
        box = new TextBox("IndexBundle",null,256,TextField.ANY);
        box.setString(indexBundle.getString(2));
        display.setCurrent(box);
       
    }

   
    protected void pauseApp()
    {
    }

  
    protected void destroyApp(boolean arg0) throws MIDletStateChangeException
    {
    }

}

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Vector;


public class ResourceBundle
{
    private Vector indexVector;
    private String fileName;
  
    private ResourceBundle()
    {
    }

    public ResourceBundle(String fileName, int size) throws IOException
    {
        this.fileName = fileName;
        indexVector = new Vector(size);
        init();
    }

    private InputStream getInputStreamFromFile()
    {
        return new ResourceBundle().getClass().getResourceAsStream(
                fileName);
    }


    private void init() throws IOException
    {
        readToVector();
    }

    public String getString(int indexID)
    {
        if (indexID < 0 indexID > indexVector.size())
        {
            return null;
        } else
        {
            return (String) indexVector.elementAt(indexID);
        }
    }

    private void readToVector() throws IOException
    {
        InputStream is = this.getInputStreamFromFile();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        int c = 0;
        int index = 0;
        while ((c = is.read()) != -1)
        {
            if (c == '/n' c == '/r')
            {
                String s = baos.toString();
                int i = s.indexOf('=');
                if (i != -1)
                {
                    if (s.substring(0, i).endsWith(String.valueOf(index)))
                    {
                        indexVector.addElement(s.substring(i + 1).trim());
                        index++;
                    } else
                    {
                        throw new IOException("index error");
                    }
                }
                baos.reset();
            } else
            {
                baos.write(c);
            }
        }
    }


}
index.properties文件內容
0=ming
1=java
2=hello
3=world
4=digital
5=hahaha

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



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91九色国产社区在线观看| 91在线网站视频| 久久久久免费视频| 91精品国产乱码久久久久久蜜臀| 青青青国产精品一区二区| 午夜精品美女自拍福到在线| 亚洲欧洲日产国产网站| 精品欧美国产一区二区三区| 久久亚洲私人国产精品va| 国产欧美va欧美va香蕉在| 亚洲乱码一区av黑人高潮| 久久国产精品免费视频| 亚洲精品美女久久久| 欧美自拍视频在线观看| 自拍亚洲一区欧美另类| 青青草一区二区| 青青久久av北条麻妃黑人| 久久视频在线视频| 国产日韩精品入口| 国产精品美腿一区在线看| 91在线无精精品一区二区| 欧美寡妇偷汉性猛交| 成人精品视频99在线观看免费| 在线观看日韩专区| 成人黄色在线免费| 国产午夜精品一区二区三区| 久久精品欧美视频| 日韩欧美精品免费在线| 国产偷国产偷亚洲清高网站| 午夜精品久久久久久99热软件| 色妞一区二区三区| 97视频在线观看网址| 欧日韩在线观看| 亚洲色图18p| 日韩av黄色在线观看| 国产精品旅馆在线| 97在线视频国产| 亚洲欧美在线第一页| 国产成人精品在线| 亚洲欧美日韩综合| 精品久久久久久亚洲国产300| 高清一区二区三区四区五区| 欧美精品成人91久久久久久久| 国产精品久久综合av爱欲tv| 亚洲国产高清自拍| 精品国产老师黑色丝袜高跟鞋| 亚洲欧洲日产国码av系列天堂| 国产精品美女久久久久久免费| 国产精品国产三级国产aⅴ浪潮| 国产日韩欧美在线观看| 欧美午夜www高清视频| 亚洲va男人天堂| 亚洲精品久久久久中文字幕二区| 亚洲人成电影网站| 久久久亚洲国产天美传媒修理工| 亚洲va欧美va国产综合久久| 伊人久久久久久久久久久久久| 亚洲美女在线视频| 亚洲欧美激情一区| 亚洲最大的免费| 国产精品福利在线| 国产精品久久久久久久久久99| 亚洲国产福利在线| 国产精品视频一区二区三区四| 久久九九亚洲综合| 国产免费一区二区三区在线观看| 欧美日韩999| 欧美视频免费在线观看| 日韩成人在线视频网站| 欧美国产精品va在线观看| 欧美国产中文字幕| 亚洲成人久久久久| 色偷偷9999www| 亚洲欧洲在线免费| 日韩黄色在线免费观看| 国产日韩换脸av一区在线观看| 国产精品欧美日韩久久| 久久精品亚洲一区| 亚洲国产精品高清久久久| 国产精品99久久久久久白浆小说| 51视频国产精品一区二区| 亚洲免费电影在线观看| 性色av一区二区三区红粉影视| 久久久女女女女999久久| 国产精品劲爆视频| 国产精品丝袜久久久久久不卡| 中文字幕日韩高清| 国语自产精品视频在线看| 亚洲天堂开心观看| 日韩欧美国产黄色| 欧美亚洲成人网| 欧美一级淫片videoshd| 亚洲欧洲在线播放| 久久免费国产视频| 国产97人人超碰caoprom| 亚洲欧美中文字幕在线一区| 最新国产精品拍自在线播放| 色小说视频一区| 久久亚洲国产精品成人av秋霞| 欧美国产日本高清在线| 精品国产91久久久久久老师| 欧美大片在线影院| 亚洲人成网站免费播放| 亚洲欧洲在线免费| 国产精品国产三级国产aⅴ浪潮| 日韩视频欧美视频| 奇米成人av国产一区二区三区| 欧美日韩亚洲视频| 国产成人精品一区二区| 色偷偷噜噜噜亚洲男人的天堂| 高清日韩电视剧大全免费播放在线观看| 日韩电影第一页| 黄色91在线观看| 欧美在线不卡区| 久久久久久久久中文字幕| 久久精品91久久香蕉加勒比| 91网站免费观看| 欧美日韩国产丝袜美女| 欧美激情国产高清| 日韩视频―中文字幕| 欧美人与性动交| 国产极品jizzhd欧美| 欧美丰满片xxx777| 日韩av片免费在线观看| 中文字幕国产精品| 成人免费视频网址| 久久精品小视频| 国产一区二区在线免费| 色伦专区97中文字幕| 91精品久久久久久久久久久久久久| 成人黄色av网| 国产精品黄页免费高清在线观看| 日韩高清电影免费观看完整版| 日韩精品在线观看一区| 欧美午夜久久久| 国产精品视频99| 日韩精品在线视频美女| 国产精品成人免费视频| 91手机视频在线观看| 亚洲第一精品自拍| 6080yy精品一区二区三区| 国产精品福利在线观看| 欧洲永久精品大片ww免费漫画| 亚洲级视频在线观看免费1级| 欧美一级视频免费在线观看| 国产精品久久综合av爱欲tv| 国产精品视频自在线| 啪一啪鲁一鲁2019在线视频| 国产精品极品在线| 亚洲性视频网址| 国产精品中文字幕在线| 亚洲有声小说3d| 国产视频久久久久久久| 最近2019年中文视频免费在线观看| 国产精品久久婷婷六月丁香| 97不卡在线视频| 18久久久久久| 亚洲国产天堂久久综合网| 97婷婷涩涩精品一区| 久久在线精品视频| 国产成人精彩在线视频九色| 欧美超级乱淫片喷水| 91久久夜色精品国产网站| 久久精品成人一区二区三区|