数组Java Arrayindexoutofboundexception
try {
rs = stmt.executeQuery("select firstname, middlename, lastname from users where username = '" + var_1 + "'");
if (rs == null || (!rs.next())) {
record = var_1;
FileInputStream file = new FileInputStream("C:/workspace/table_export.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(file));
String line = null;
while ((line = br.readLine()) != null) {
String[] tokens = line.split("\\s+");
if (tokens[0].equals(record)) {
int size = tokens.length;
for (int i = 0; i <= size; i++) {
fw.append(tokens[i]);
fw.append(',');
}
fw.append('\n');
}
}
}
}
大家好
我正在尝试使用从文本文件检索的筛选值查询数据库
如果结果集返回空,我将在同一文本文件中搜索该过滤器值,并通过拆分空格将包含这些值的整行复制到数组中
然后我将数组写入csv文件
我的文本文件有这样的值
yzr200123 xxxx yyyy
dd4534554 xydy frde
var_1=yzr200123, dd4534554
注意:这个var_1值在db中不存在,所以我必须在文本文件中搜索该值,并将整行写入csv
输出。csv
yzr200123,xxxx,yyyy
dd4534554,xydy,frde
人们可以看到它写入csv文件,但我得到了以下例外
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at simplejdbc.SimpleJDBC.getstaffid(SimpleJDBC.java:119)
at simplejdbc.SimpleJDBC.main(SimpleJDBC.java:64)
有没有办法通过调整代码来避免这种异常。 如有任何意见,将不胜感激
提前谢谢
# 1 楼答案
这是错误的。由于数组索引从
0
开始,所以必须循环到i<size
假设数组长度为
4
。索引是基于0的,因此可用的索引将是0, 1, 2, 3
。通过循环,您试图访问索引0, 1, 2, 3, 4
。第五个元素(其索引为4
)不存在,因此它将抛出一个IndexOutOfBoundsException