private Address[] read() throws Exception{
   Address[] addressArray = new Address[getLineCounts()];
   Scanner scanner = new Scanner(new File("address.txt"));
   int i=0;
   while(scanner.hasNext()){
   String[] array = scanner.nextLine().split(",");//line =1,111,111,111,111,111
           addressArray[i++] = new Address(Integer.parseInt(array[0]),array[1],
                             array[2],array[3],array[4]);
   }
       return addressArray;
}
变红的那行出错了,我都快愁死了。。不知道为啥出错,说是找不到符号。

解决方案 »

  1.   

    做了个单元测试,没发现问题。@Test
    public void  read() throws Exception {
    Address[] addressArray = new Address[1];
    Scanner scanner = new Scanner(new File("c:/address.txt"));
    int i = 0;
    while (scanner.hasNext()) {
    String[] array = scanner.nextLine().split(",");// line
    // =1,111,111,111,111,111
    addressArray[i++] = new Address(Integer.parseInt(array[0]),
    array[1], array[2], array[3], array[4]);
    }
    System.out.println(addressArray.length);
    } class Address {
    String address; Address(int i, String str1, String str2, String str3, String str4) { }
    }
      

  2.   

    我想应该是数组越界,
    int i=0;
    while(scanner.hasNext()){
    String[] array = scanner.nextLine().split(",");//line =1,111,111,111,111,111
      addressArray[i++] = new Address(Integer.parseInt(array[0]),array[1],
    array[2],array[3],array[4]);
    }第一次遍历的时候是addressArray[1],addressArray[0]没有初始化
    这样导致最后一次遍历时,会导致数组越界,建议改成
    int i=0;
    while(scanner.hasNext()){
    String[] array = scanner.nextLine().split(",");//line =1,111,111,111,111,111
      addressArray[i] = new Address(Integer.parseInt(array[0]),array[1],
    array[2],array[3],array[4]);
    i++;
    }