【发布时间】:2017-09-28 05:52:36
【问题描述】:
我是 Java 的新手,有一些 C# 的背景。我目前正在使用 Eclipse 在程序中运行一个方法,以将该方法的参数与文本文件中的用户名和密码进行比较。
但是,在运行代码后,我收到了一个名为“java.lang.ArrayIndexOutOfBoundsException = 1”的错误。我不明白为什么会这样。下面包含代码和文件。 我试图只读取顶部的三个用户名和密码。下面的其他三个只是填充它并稍后在程序中使用。
**更新:好的。我已经将令牌更改为令牌 [0] 和令牌1。而且还是不行。
**更新编号2:另外,这是我调用该方法时包含的代码。下面:
s.login("tomrichards", "96744213");
public boolean login (String user, String password) {
FileReader fr = new FileReader ("auth.txt");
LineNumberReader r = new LineNumberReader (fr);
String I = "";
boolean identity = false;
String name = "";
String password = "";
while ((I = r.readLine()) != null) {
String [] token = I.split(";");
name = token[0];
pass = token[1];
if (name.equals(user) && pass.equals(password)) {
identity = true;
System.out.println("Username " + name + "Password " + pass);
return true;
}
else {
identity = false;
return false;
}
}
r.close();
}
**更新第 3 条:我仔细检查了是否缺少任何“;”在文本文件中,没有。
【问题讨论】:
-
索引从 0 开始。您的意思是使用
token[0]和token[1]吗?此外,您可能在文件中有一行没有;。 -
您是否在调试器中运行了您的代码,并且每次都查看数组的大小,或者至少在您遇到异常时查看?如果您不熟悉调试器,那么现在是学习的好时机。