gpt4 book ai didi

java - 2D 数组文件读取器

转载 作者:行者123 更新时间:2023-12-01 09:55:14 25 4
gpt4 key购买 nike

对于我的计算机科学类(class),我正在制作一个网站用户名/密码程序。我决定使用二维字符串数组,但它的效果并不是最好的。我尝试创建一个文件读取器来读取写入的登录信息,但我不断收到 ArrayIndexOutOfBoundsException 错误。我的文件阅读器代码如下,还包括我的登录输入代码。我刚刚开始使用 Java,所以我有非常基本的编程知识。

private void fileReader() throws FileNotFoundException {

File inFile = new File(filePath);


try {

Scanner freader = new Scanner(inFile);

while (freader.hasNextLine()) {

for (int j = 1; j <= pass.length; j++) {

pass[j][0] = freader.nextLine();

pass[j][1] = freader.nextLine();

pass[j][2] = freader.nextLine();

}
}

freader.close();

} catch (IOException e) {

System.err.println(e);
System.exit(1);

}

登录输入:

private void input() throws InterruptedException, FileNotFoundException {



for (int i = 0; i < pass.length; i ++){

System.out.println(i);

if (i == pass.length){
add();
}

c.print("Please enter the website: ");

pass[i][0] = c.readLine();

c.print("Please enter your username: ");

pass[i][1] = c.readLine();

c.print("Please enter your password: ");

pass[i][2] = c.readLine();

while (true){

c.clear();
synchronized (c) {
c.println("To continue adding logins, press C. To exit the program press ESC.");
c.println(pass[i][0] + " " + pass[i][1] + " " + pass[i][2]);
}
if (c.isKeyDown(KeyEvent.VK_C)){
break;
}
else if (c.isKeyDown(KeyEvent.VK_ESCAPE)){
fileWriter();
pass();
}

Thread.sleep(10);

}

}




}

非常感谢任何帮助!谢谢!

最佳答案

主要原因是因为这个:

for (int j = 1; j <= pass.length; j++) {
pass[j][0] = freader.nextLine();
pass[j][1] = freader.nextLine();
pass[j][2] = freader.nextLine();
}

数组从 0 开始。通过使 j = 1,您将从组中的第二个数组开始,您需要从 0 开始读取直到但不包括数组长度。

关于java - 2D 数组文件读取器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37288032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com