Java ArrayList元素超出错误 java.lang.ArrayIndexOutOfBoundsException: 2
解决时间 2021-02-03 14:32
- 提问者网友:城市野鹿
- 2021-02-02 20:22
我写了一个小程序把txt里的数据按行读取,因为每行都是 String \t String \t String的格式所以用 \t分割存储到Arraylist里面, 再把想要的部分写到一个新的文件里 代码大概如下
public static void main(String args[])throws Exception{
BufferedReader read = new BufferedReader(new InputStreamReader
(new FileInputStream("C:/a.txt"));
String str = null;
List list = new ArrayList();
while((str = read.readLine()) != null){
list.add(str.toLowerCase().split("\\u0009"));
}
read.close();
FileOutputStream out = new FileOutputStream("C:/b.txt",true);
for(int i = 0;i < list.size();i++){
String t[] = list.get(i);
out.write((t[1]+"\t"+t[2]+"\r\n").getBytes());
}
out.close();
}
不知道Arraylist是那地方出错了,还望各位大神帮我看看,万分感谢了!
最佳答案
- 五星知识达人网友:零点过十分
- 2021-02-02 21:57
1、写入第二个文件的时候为什么要用t[1] , t[2] 注意数组的下表都是从0开始的。
2、检查下你的a.txt是不是每行都有三个元素(如果上面1是你故意写的话则t[2]代表第三个元素),否则检查是否有2个元素。
全部回答
for(int i = 0;i < list.size();i++){
String t[] = list.get(i);
out.write((t[1]+"\t"+t[2]+"\r\n").getBytes());
}
out.close();
感觉是这里,t的下标是从0开始的,报的错误时数组的下标越界,你改下看看
- 2楼网友:洒脱疯子
- 2021-02-02 23:04
要保证你的a.txt的每一行的内容都有两个\t,这样list里的每个数组的lang最少都是3。这样
for(int i = 0;i < list.size();i++){
String t[] = list.get(i);
out.write((t[1]+"\t"+t[2]+"\r\n").getBytes());
}
中的 t[2] 就不会报错
我要举报
大家都在看
推荐资讯