2013-03-04 106 views
-2

我使用jdom分析器分割數據並插入到數據庫中,使用逗號分隔符加載一個.csv文件。java.lang.IndexOutOfBoundsException:索引:xx,大小:xx

但以某種方式我打這個錯誤的標題提到。 .csv文件包含超過200k條記錄。

當它讀取到大約4000條記錄時,程序拋出了這個錯誤。 索引和大小是相同的值,但在此之前可以成功插入所有記錄。只是想知道爲什麼直到差不多4k纔會出現這個錯誤。

這是我的for循環:

for(int x = 0; x < FLODS.getBufferSize(); x++) 

但我確實互聯網上搜索:他們sugguesting此方法..

for(int x = 0; x < FLODS.getBufferSize()-1; x++) 

任何想法?謝謝:)

+0

什麼是FLODS變種? – user 2013-03-04 15:31:35

+1

我們需要看到for循環中的代碼和引發錯誤的代碼 – cowls 2013-03-04 15:32:03

+2

什麼是循環體。哪一行異常被拋出? – 2013-03-04 15:32:44

回答

4

java.lang.IndexOutOfBoundsException: Index: xx, Size: xx

一個非常普遍的Exception。這清楚地表明您正試圖訪問的索引,其中ArrayList(例如)的大小也是xx。請務必記住,如果尺寸爲xx,則只能訪問索引,直到xx-1。如果您嘗試訪問xx索引,其中的大小也是xx,您肯定會得到此錯誤。

因此,建議從互聯網,要求你只能遍歷到任何大小的-1

雖然你的FOR循環似乎沒問題,但可能是你正在嘗試訪問一些索引裏面的一些索引,這是1比當前的x更多。

0

java.lang.IndexOutOfBoundsException是某種類型的索引(例如數組,字符串或向量)超出範圍時出現的一種異常,因此請檢查分配的內存。 這是所有人都可以說,沒有查看代碼之前和for循環內

-1

這是一個錯誤,當你有一個嵌套的For循環,並嘗試訪問第二個變量。

for(int i = 0;i<something.size(); i++) { 
    //Some manipulations here.. 
    for(int j = 0;j<somethingElse.size(); j++) { 
      //using blah(i) instead of blah(j) causes this issue 
    } 
} 
0
List<WebElement> div1=driver.findElements(By.xpath(".//*[@class='art_title']"));   

for(int i=0;i<=div1.size();i++) 
{   
    System.out.println(div1.get(i).getText());   
    Thread.sleep(1000); 
} 

代替上述格式我把它改爲這種格式:

List<WebElement> div1=driver.findElements(By.xpath(".//*[@class='art_title']")); 
String[] abc = new String[div1.size()]; 

int i= 0; 

for (WebElement e : div1) 
{ 
     abc[i] = e.getText(); 
     i++;    
     System.out.println(e.getText()); 
} 
相關問題