スキャナーを使用してファイルを読み込んでいます。ファイルは、最初の行が配列の次元になるようにフォーマットされています。次の行には 1 番目の行、次の行には 2 番目の行が含まれます。例のファイル:
3 3 1 2 3 4 5 6 7 8 9
私が実行し続ける問題は、配列の値がすべて 9 のように見えることです。ファイルは int ですが、double が必要です。何が起こっているのかをデバッグしようとしているので、そこには多くの印刷ステートメントもあります。例外処理が完了していません。配列を正しくインスタンス化できるようになったら、戻って強化します。任意のポインタをいただければ幸いです。たとえば、ファイルを一度開くだけで、次元を取得して配列をインスタンス化するより良い方法です。
更新されましたが、nullPointerException を取得しています
public class Help implements TopoMapInterface {
private String filename;
private File mapfile;
public double[][] baseMap;
public double[][] enMap;
public int enhancementLevel;
public Help(String filename) throws FileNotFoundException,
InvalidFileFormatException {
this.filename = filename;
System.out.println("Reading in file: " + filename);
String number = "";
int row = 0;
int col = 0;
int count = 0;
try {
Scanner inputFile = new Scanner(new File(filename));
while (inputFile.hasNextInt()) {
row = Integer.parseInt(inputFile.next());
col = Integer.parseInt(inputFile.next());
System.out.println("Row : " + row);
System.out.println("Col : " + col);
baseMap = new double[row][col];
System.out.println(baseMap[2][4]);
for (int i = 0; i < baseMap.length; i++){
for (int j = 0; j < baseMap[i].length; j++){
baseMap[i][j] = Double.parseDouble(inputFile.next());
}
}
}
} catch (Exception e) {
System.out.println(e.toString());
}