【问题标题】:Reading text file into array using Scanner: Null Pointer Exception使用扫描仪将文本文件读入数组:空指针异常
【发布时间】:2012-11-10 14:39:49
【问题描述】:

我正在尝试读取存档文件并将其传递给数组,但是当我尝试访问数组 [0] 时,我不断收到空指针异常。当我要求 java 打印数组 [0] 时,它显示为空。这是我阅读文本文件的方式:

int lines= 0;
while(s1.hasNext()) {String line=s1.next(); lines ++; } // The number of lines


int i= 0;

char [][] array= new char [lines][]; 
if (f.exists()) {
while (s1.hasNext()) {
String line= s1.next(); 

int m = line.length();

    for (int j = 0; j < m; j++) {
        array[i][j]=line.charAt(j);
    }

  i++;

} 

}

【问题讨论】:

    标签: arrays file text java.util.scanner


    【解决方案1】:

    array[0] 必须是 null,因为您还没有为此分配内存。

    还有一些问题:

    第二个while(s1.hasNext()) 循环永远不会被执行,因为第一个循环将读取整个文件,当它结束时,s1.hasNext() 将返回false。所以第二个循环永远不会运行。

    array 使用 lines 数量的 char 数组启动,但没有一个数组被初始化。所以他们都是null。当您尝试访问其中任何一个时,您肯定会收到NullPointerException

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      相关资源
      最近更新 更多