首页新闻找找看学习计划

求大神帮我看看这段代码为啥不停爆出java.lang.ArrayIndexOutOfBoundsException:异常

0
悬赏园豆:50 [已解决问题] 解决于 2014-04-13 22:55

package com.Bookinfo.biz;

import java.io.*;
import java.util.*;

import com.Bookinfo.entity.Bookinformation;

public class BookInfoRead {
 
public static List read() throws Exception{
 List<Bookinformation> list=new ArrayList<Bookinformation>();//创建集合对象
    FileReader  fr=new FileReader(".\\src\\wenben\\BookInfo.txt");
    BufferedReader br=new BufferedReader(fr);
    String str=br.readLine();
    System.out.println(str);
    while(str!=null){
     Bookinformation book=new Bookinformation();//创建实体对象
     String s[]=str.split(",");
     book.setBookNumber(s[0]);
     book.setBookName(s[1]);
     book.setBookPrice(s[2]);
     book.setCategoryNum(s[3]);
     book.setPurchaseDate(s[4]);
     list.add(book);
//     System.out.println(s[1]);
     str=br.readLine();
    }
 
    br.close();
 fr.close();
 return list;
 
 
 
}
 public static void main(String[] args) throws Exception {
  BookInfoRead    info=new BookInfoRead();
  info.read();

 }

}

java-001的主页 java-001 | 初学一级 | 园豆:4
提问于:2014-04-13 12:45
< >
分享
最佳答案
0

我不知道你的Bookinfo.txt里面的内容是怎么样,但是我大概知道原因是出现在String s[]=str.split(",");
     book.setBookNumber(s[0]);
     book.setBookName(s[1]);
     book.setBookPrice(s[2]);
     book.setCategoryNum(s[3]);
     book.setPurchaseDate(s[4]);这段代码中,那个str.split(",")可能只分出了4个string,导致访问s[4]的时候跑出错误,你可以在book.setPurchaseDate(s[4]);之前插上一句System.out.println(s.length);如果为4的话就说明我的猜想对了~说明你的txt文件那里有问题了

收获园豆:50
Mushroom0417 | 菜鸟二级 |园豆:327 | 2014-04-13 20:50

谢谢你,

java-001 | 园豆:4 (初学一级) | 2014-04-13 22:54
其他回答(1)
0

索引超出数组界限了

轻狂の书生 | 园豆:1040 (小虾三级) | 2014-04-13 15:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册