2017-04-01 77 views
0

這是我一直有一些麻煩的任務的一部分。從我的谷歌搜索,我認爲我必須拆分陣列,我已經到了我現在的地步。如何將文件中的信息存儲到變量中?

該程序讀取文本文件並將其中的文本輸出到控制檯。然後它要求用戶輸入與文本文件相關的名稱。 然後它再次讀取文件,接下來會發生什麼是可變電源根據其輸入存儲來自文本文件的數字。

當我運行我的代碼時,文本文件輸出並要求輸入。然後沒有任何反應應該發生的是,我的變量功率應該輸出我的數組的索引2中的值,名爲g,根據我的文本文件應該是10。

我的文本文件的組織是這樣的:

巨人

電源

我希望我的內部功率存儲10,我認爲這將是指數2 而Character(變量)是他們在被問到時輸入的名字,在這種情況下是巨人。

我是初學者到java和任何幫助表示讚賞。

編輯:現在這個問題已解決,不知道它是否有效,因爲我'修復'這個問題發生ArrayIndexOutofBoundsException:2。任何想法爲什麼?這個錯誤在第46行是int power = Integer.parseInt(g [2]);

while ((line = creatureRead.readLine()) != null) 
{ 
    String[] g = line.split(" "); 
    for (int index = 0; index < g.length; index++) 
    { 

    if (character.equals("Giant")) 
    { 
    int power = Integer.parseInt(g[2]); 
    System.out.println(power); 
    } 
    } 
     creatureRead.close(); 
} 
} 

catch (IOException e) 
{ 
e.printStackTrace(); 
} 
+0

你可以張貼一些代碼請。 –

回答

0

據我瞭解,這是你的程序是如何工作的:

  1. 讀取文件並顯示其內容到控制檯中的
    [生物]功率[功率值]
  2. 形式用戶輸入[生物]
  3. 程序應該顯示該生物的[力量值]

我的猜測是你得到了文件的結尾,這就是爲什麼你不能讀取它。在1)關閉你的文件並在3)中打開它。讓我知道如果情況並非如此。

+0

我認爲你是對的,我必須關閉它,一旦我關閉了流,不再能夠重新讀取我的文件。如何「打開」流或重新讀取我的文件? – user7799985

+0

fr =新的FileReader(FILENAME); \t \t \t br = new BufferedReader(fr); \t \t \t字符串sCurrentLine; \t \t \t BR =新的BufferedReader(新的FileReader(文件名)); \t \t \t而((sCurrentLine = br.readLine())!= NULL){ \t \t \t \t的System.out.println(sCurrentLine); \t \t \t} \t \t \t \t \t \t br.close(); \t \t \t \t \t \t //開放再次 \t \t \t BR =新的BufferedReader(新的FileReader(文件名)); \t \t \t而((sCurrentLine = br.readLine())!= NULL){ \t \t \t \t的System.out.println(sCurrentLine); \t \t \t} – t4u

+0

感謝,但現在有一個ArrayIndexOutOfBoundsException錯誤 – user7799985

0

我有同樣的問題Read a text file line by line into strings,解決方法很簡單:

List<String> lst = Files.readAllLines(Paths.get("C:\\test.txt")); 

,你可以非常相似訪問值,以你的方式訪問數組值:

lst.get(0); //Creature 
lst.get(1); //Power 
lst.get(2); //10 
相關問題