【发布时间】:2015-03-08 00:04:56
【问题描述】:
我正在尝试使用来自文件的数据输入来填充字符数组,在解析文件时我还尝试存储一些值,但一切都不起作用。
这是我的代码:
File file = new File(filename); // filename is a user input
Scanner fileScan = new Scanner(file);
// determine the board size
ROWS = fileScan.nextInt();
COLS = fileScan.nextInt();
fileScan.nextLine();
char[][] board = new char[ROWS][COLS];
for( int row = 0; row < board.length; row++){
for (int col = 0; col < board[row].length ; col++){
if (fileScan.hasNext()) {
board[row][col]= fileScan.next().charAt(0);
if(board[row][col] == START){
startingPoint = new Point(row, col);
}
if(board[row][col] == END){
endingPoint = new Point(row, col);
}
}
}
}
}
假设输入文件有
2 2
1 O O
O O O
O X 2
这是我运行它时得到的(当我尝试打印数组时):
O O
O X
java.lang.NullPointerException
at java.awt.Point.<init>(Unknown Source)
at CircuitBoard.getStartingPoint(CircuitBoard.java:139)
at CircuitTracer.<init>(CircuitTracer.java:120)
at CircuitTracer.main(CircuitTracer.java:36)
出了什么问题导致我无法获得起始点的值?
【问题讨论】:
-
你在哪里实例化你的 fileScan 对象?
-
请将异常的完整堆栈跟踪编辑到您的问题中。
-
总是方阵/?贴上fileScan实例化的代码
-
不确定这是否有效(没有跟踪所有代码)您的文件显示 2 行 2 列,而数据是 3 行 3 列。
标签: java arrays nullpointerexception