2017-04-01 76 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 
相关问题