高手,您好:
    我在写一个“Java读取本地txt文件中的数据到内存中的String类型的数组”的功能..
    我才用了一个“String数组”来接收硬盘中的txt文件中存储的数据的责任的承担:
    源代码如下:
    static String[] bufCusUID = new String[200];
    我读取本地文件的类型ReadTxt类的源代码如下:
    package s_port_package_BeiJing;
import java.io.BufferedReader;   
import java.io.FileReader;   
import java.io.IOException;   
import java.util.ArrayList;
   
public class ReadTxt {   
  static ArrayList<String> logData = new ArrayList<String>();
static String text = null;
    public static void read(String filePath) {   
         try {   
              FileReader input = new FileReader(filePath);   
              BufferedReader br = new BufferedReader(input);   
              while (( text = br.readLine()) != null) {   
               logData.add(text);
              }   
              br.close();   
              input.close();   
        } catch (IOException e) {   
              e.printStackTrace();   
        }   
     }   
    
    public static void readMemoryData(String data){
     logData.add(data);
    }
    
    public static void readMemoryArrayData(String[] data){
     int len = data.length;
     for(int i = 0;i<len;i++){
     logData.add(data[i]);
     }
    }
}  
    我的代码出错的现场环境如下图:
    
    我的编译器提示如下:
    
    我的文件中存储的数据的内容如下:
    
    一共是200行数据,我已经用Editplus进行过统计..
    文件的路径,也没有问题..
    希望得到高手的点拨:
    我的代码的错误,出在什么地方...?
    怎么修改...?
                                                              一位日日夜夜向着理想奔跑的筑梦者
                                                              2013年10月7日星期一晚上20点08分调试javaarraylistOutOfBoundsException数组溢出错误

解决方案 »

  1.   

    内存溢出?
    static String[] bufCusUID = new String[199];
    看看,下标好像是从0开始的
      

  2.   

    数组越界,检查下是不是读到了最后的空行,建议获取一行字符串时判断下是不是为null或是不是为""再调调看
      

  3.   

    数组越界了
    不是定义了ArrayList<String>吗?
    就logData.add()就好了啊
      

  4.   

    我怎么感觉你读了3个200个数
    读了200个ID,又读了200个密码,200个名字
    等到你调用第二次读完 你的ArrayList就有400个字符串了你应该每次read了200个 
    调用一次clear 
    给你ReadTxt加一个clear方法