0
我有一個.data文件包含值的行。我使用split
方法將它們分成不同的值,然後初始化一個ArrayList
,我將模型項添加到列表中。我對這裏這個特定的代碼,而環路是這樣的:簡單的ArrayIndexOutOfBoundsException循環中的1
while (inFile.hasNextLine() {
// Do something
}
似乎並沒有工作,所以我把它切換到for
循環。
public MachineLearningInstance(File f) {
try {
int noOfRowsInData = 0;
LineNumberReader lnr = new LineNumberReader(new FileReader(f));
try {
lnr.skip(Long.MAX_VALUE);
noOfRowsInData = lnr.getLineNumber();
//System.out.println(noOfRowsInData);
lnr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
irisData = new ArrayList<Iris>();
// While there is another line in inFile.
Scanner inFile = new Scanner(f);
for (int i = 0; i < noOfRowsInData; i++) {
if (inFile.hasNextLine()) {
// Store line into String
String line = inFile.nextLine();
// Partition values into separate elements in array
String[] numbers = line.split(comma);
// Grab values from that line and store it into a Iris ArrayList Item
irisData.add(i, new Iris(i, numbers[0], numbers[1], numbers[2], numbers[3], numbers[4]));
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
出於某種奇怪的原因(我敢打賭,這是一個很簡單的原因,我看不出它)我不斷收到ArrayListIndexOutOfBoundsException 1
當我運行這段代碼。我猜我的while循環不斷循環?我不明白這個問題似乎是什麼。
是否有可能我的LineNumberReader
沒有正確讀取行數?儘管如此,我認爲情況並非如此。我很可能沒有正確地聲明一些東西。