获取错误:线程“main”java.lang.NullPointerException中的异常

时间:2014-01-18 00:41:09

标签: java methods nullpointerexception

我的代码出了什么问题?基本上,有一个菜单,用户选择一个数字。在他们选择" 1"之后,他们可以转到第二个方法readData并选择另一个数字。如果他们选择" 2"它就有效;但是,如果他们选择" 3" (bestSeller方法),我得到异常错误。

1 个答案:

答案 0 :(得分:1)

在方法Read_Data(...)中,您在执行操作之前增加c(使用0初始化的值)的值。您必须在while-loop

的末尾增加它
while ((text = readFile.readLine()) != null){
    // ... your stuff
    // ...
    c += 1; // At the end
}

修改

在方法displayData(...)中,您的for 初始化条件值是错误的。尝试更改此行

for (int i = 1; i <= dc; i++) {

for (int i = 0; i < dc; i++) {

编辑2:

bestSeller(...)方法中,您将j0迭代到100(数组长度)。这会导致异常,您可能希望使用实际读取的数据。

for (int j = 0; j < sortC - 1; j++) {
    for (int k = j + 1; k < sortC; k++) {

对于选项3(bestSeller),我得到了这些变化,预期输出(修改.txt中的音量值后)

 POP        Beatles8        Let It Be       18.0
 POP        Beatles7        Let It Be       17.0
 POP        Beatles6        Let It Be       16.0
 POP        Beatles5        Let It Be       15.0
 POP        Beatles1        Let It Be       13.0
 POP        Beatles2        Let It Be       12.0
 POP        Beatles3        Let It Be       11.0
 POP        Beatles4        Let It Be       10.0