第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

代碼塊未觸及

代碼塊未觸及

ibeautiful 2021-03-31 13:15:29
我正在用Java構(gòu)建小型應(yīng)用程序,小型游戲機(jī)制,但沒什么大不了的。我有一個旨在從文件中獲取數(shù)據(jù)的類。但是,當(dāng)我聲明要從中讀取的兩個類時,程序?qū)⒑雎运袃?nèi)容并繼續(xù)。結(jié)果,當(dāng)我嘗試訪問相應(yīng)的列表時,它給了我空指針異常。以下獲取數(shù)據(jù)的方法的代碼:public void getData(int l, player tmp, level le) {        String[] dataPlayer;        String[] dataLevel;        try {            //FileReader f = new FileReader(this.levelPath.concat(Integer.toString(l)));            File f = new File(this.levelPath.concat(Integer.toString(l)));            BufferedReader buff = new BufferedReader(new FileReader(f));            System.out.println("Reached");            boolean eof = false;            while (!eof) {                String b = buff.readLine();                if (b == null)                    eof = true;                else {                    if (b.contains("player")) {                        dataPlayer = b.split("-");                        for (int i = 0; i < dataPlayer.length; i++) {                            if (i == 0)                                continue;                            items it = new items(dataPlayer[i]);                            tmp.setInventory1(it);                        }                    }else if (b.contains("level")) {                        dataLevel = b.split("-");                        for (int i = 0; i < dataLevel.length; i++) {                            if (i == 0)                                continue;                            items it = new items(dataLevel[i]);                            le.setSpecific(it);                        }                    }                }            }        }catch (IOException i) {            i.getMessage();        }    }
查看完整描述

1 回答

?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗 獲得超3個贊

如果要保留循環(huán)代碼,則可以重構(gòu)代碼,使其看起來像這樣:


public void getData(int l, player tmp, level le) {

    try (BufferedReader buff = new BufferedReader(new FileReader(new File(this.levelPath + l)))) {

        String b;

        while ((b = buff.readLine()) != null) {

            if (b.contains("player")) {

                String[] dataPlayer = b.split("-");

                items it = new items(dataPlayer[1]); //because you know that you will have an array with only 2 elements

                tmp.setInventory1(it);

            }else if (b.contains("level")) {

                String[] dataLevel = b.split("-");

                items it = new items(dataLevel[1]); //because you know that you will have an array with only 2 elements

                le.setSpecific(it);

            }

        }

    }catch (IOException e) {

        e.printStackTrace();

    }

}

它比您擁有的要好一些,更易于調(diào)試和閱讀。我建議您閱讀有關(guān)嘗試使用資源的信息。


根據(jù)經(jīng)驗,每次打開流時,都必須將其關(guān)閉。如果您自己不打開它,則不要關(guān)閉它。


查看完整回答
反對 回復(fù) 2021-04-21
  • 1 回答
  • 0 關(guān)注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號