使用Scanner将文本文件读入数组:空指针异常

时间:2012-11-10 14:39:50

标签: arrays file text java.util.scanner

我试图读取一个存档文件并将其传递给一个数组,但是当我尝试访问数组[0]时,我一直得到Null Pointer Exception。当我要求java打印数组[0]时,它显示为null。这是我阅读文本文件的方式:

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++;

} 

}

1 个答案:

答案 0 :(得分:0)

array[0]必须为null,因为您尚未为此分配内存。

还有一些问题:

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

arraylineschar个数组启动,但没有一个数组被初始化。所以他们都是null。当您尝试访问其中任何一个时,您肯定会获得NullPointerException