永发信息网

Java ArrayList元素超出错误 java.lang.ArrayIndexOutOfBoundsException: 2

答案:3  悬赏:70  手机版
解决时间 2021-02-03 14:32
我写了一个小程序把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是那地方出错了,还望各位大神帮我看看,万分感谢了!
最佳答案
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开始的,报的错误时数组的下标越界,你改下看看
要保证你的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] 就不会报错
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
豆腐牛奶蛋糕地址在什么地方,想过去办事
皇祜的意思是什么啊?知道的请说下!
多多百货泉林店地址有知道的么?有点事想过去
临猗到汾阳有多远
风水 健身器材适合放在家里的什么位置
同时被两个人追求,但我心里想的又是另外一个
山下排怎么去啊,有知道地址的么
枝游的意思是什么啊?知道的请说下!
玩命猜成语一个無一个无字中间加两点
好心情花店地址在什么地方,想过去办事
完整无缺的缺字是什么意思
处对象多久结婚最合适
关于肚兜和杨贵妃的传说
造奇的意思是什么啊?知道的请说下!
双河镇环境综合治理办公室地址有知道的么?有
推荐资讯
谢水桥怎么去啊,有知道地址的么
怎么样做的羊肠非常好吃 河间羊肠汤的做法
四大名捕来吴秀波演的角色为什么变成了那样?
彦彦餐馆在什么地方啊,我要过去处理事情
写叙永县鱼凫公园的作文
【混凝土计算公式】混凝土灌注桩方量计算公式
某年级有104人,男生人数的7分之1与女生人数的
南盐池村地址好找么,我有些事要过去
昌晖驾校(北海海城)地址在哪,我要去那里办事
湛江有没有出产海参的
这留言是怎么设置的,只能看到数量看不到内容
客运东站售票网点地址在什么地方,想过去办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?