我想寫一個程序,通過寫入一個文本文件來模擬數據庫。我可以讀取一個完整的數據文本文件來使用,然後將其轉換爲字節數組以存儲到另一個文本文件中。我遇到的問題是因爲我從字符串轉換爲字節數組我不斷收到java.lang.ArrayIndexOutOfBoundsException:8.我硬編碼值到我的for循環,以便它不應該是一個無效的索引陣列,但似乎沒有解決問題。這裏是我的功能,錯誤顯示了在:如何避免獲取java.lang.ArrayIndexOutOfBoundsException
public void writeBucket(int bucket, String importFile, String[][] allrecords)
{
theDisk = new FakeDisk();
for(int z = 0; z < bucket; z++)
{
try
{
for(int j = 0; j < 7; z++)//for(int j = 0; j < allrecords[z].length; z++)
{
if(allrecords[z][j] == null) //this is the line where the error shows up
{
continue;
}
theDisk.writeSector(z, allrecords[z][j].getBytes());
}
}
catch(Exception e)
{
//System.out.println(e.getMessage());//this prints the number 8 when not commented out
continue;
}
}
try
{
FileWriter fwrite = new FileWriter(importFile);
fwrite.write("\n\n\n\n");
fwrite.close();
}
catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
}
我把環在一個try/catch以爲這樣就至少還輸出字節到我的文本文件,然後沒有任何更多添加到文件一旦遇到無效索引,但事實並非如此。我主要無法弄清楚爲什麼我一直在收到這個錯誤。我可以打印出陣列沒有問題,如果我不嘗試寫入文本文件,所有內容都會顯示出來。
任何幫助表示讚賞!
請打印堆棧跟蹤 – zaffargachal
哪行代碼對應第8行的異常? –
如何獲取存儲桶值,這似乎是導致異常,您可以發送代碼如何調用此方法,以及如何設置存儲桶變量值 – zaffargachal