我想放棄,但我必須這樣做,所以你是我的最後希望。我想這是一個簡單的問題,但我看不出有什麼問題。下面的代碼:與FileReader,ArrayIndexOutOfBounds奇怪的陣列情況
int i = -1;
String[][] dan = new String[20][13];
try {
FileReader odczytanie = new FileReader("Kontrahenci.txt");
BufferedReader bufor = new BufferedReader(odczytanie);
String str;
str = bufor.readLine();
System.out.println(str);
while ((str = bufor.readLine()) != null) {
i = i + 1;
String[] ar = {null, null, null, null, null, null, null, null, null, null, null, null, null};
ar=str.split("; ");
for(int j = 0; j < 13; j++)
dan[i][j] = ar[j];
for(int j = 0; j < 13; j++)
System.out.println(dan[i][j]);
}
bufor.close();
} catch (IOException e) {
System.out.println("File Read Error");
}
所以,當我嘗試運行它,我收到此錯誤:
"Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1"
這條線:
for(int j = 0; j < 13; j++)
System.out.println(ar[j]);
在一個文件我已經三行字以分號分隔。該代碼完美適用於第一行,但收到錯誤後。不知道什麼是錯的。
你的代碼中有神奇的數字(20,13)。用常量替換那些。 – ashes999
您提到的兩行代碼在上面的代碼中不可用 – home
將您的調試器設置爲引發並檢查ar的內容(和大小)以及失敗的j的值的行。 – ashes999