gpt4 book ai didi

java - 从文件中读取,使用扫描仪的java

转载 作者:行者123 更新时间:2023-12-04 04:59:55 27 4
gpt4 key购买 nike

我一直在尝试使用扫描仪读取我的文件。

我得到的错误是 NoSuchElementException: No line found所有数组都是字符串数组,用于存储文件中的信息。
使用的分隔符是“;”。

private void choice() {
File file = new File("info.txt");

try {
Scanner read = new Scanner(file);
read.useDelimiter(";");
while (read.hasNextLine()){
if (read.hasNext()){
realName[i] = read.next();
} else {
break;
}
if (read.hasNext()){
userName[i] = read.next();
} else {
break;
}
if (read.hasNext()){
password[i] = read.next();
} else {
break;
}
if (read.hasNext()){
address[i] = read.next();
} else {
break;
}
if (read.hasNext()){
contact[i] = read.next();
} else {
break;
}
if (read.hasNext()){
cardType[i] = read.next();
} else {
break;
}
if (read.hasNext()){
cardNo[i] = read.next();
} else {
break;
}
i++;
}
}
catch ......
}

如果我使用上面的代码,我将永远得到 NoSuchElementException: No line found .

现在我使用下面的代码.. 一切都会很好地打印出来,没有错误。
private void choice() {
File file = new File("info.txt");

try {
Scanner read = new Scanner(file);
read.useDelimiter(";");
while (read.hasNextLine()){
realName = read.nextLine();
System.out.println(realName);
}
}
catch ......
}

一切都将逐行打印。不会有任何问题,但这不是我想要的。我想将它们存储在数组中。

我在编码的第一部分做错了什么吗?

我也用 read.hasNext()而不是 read.hasNextLine() .
但也有错误。

任何善良的灵魂可以提供帮助吗?

==编辑
对不起。我没有在 info.txt 中显示数据,它是这样的。
Mr Dash;dash;dash123;Dash Lane 1;414924934;VISA;1219240241029021092
Mr Long;long;long123;Long Lane 1;3924929;MASTERCARD;123902039109329

最佳答案

您调用hasNextLine一次和nextLine在你的循环中不止一次,所以如果它到达 EOF 可能会出错.
由于您使用的是分隔符,我认为您正试图在一次迭代中从单行读取每个单词。试试这个:

int i=0;
while (read.hasNextLine()){
realName[i] = read.next();
userName[i] = read.next();
password[i] = read.next();
address[i] = read.next();
contact[i] = read.next();
cardType[i] = read.next();
cardNo[i] = read.next();
i++;
}

关于java - 从文件中读取,使用扫描仪的java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16261868/

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