スキャナーを使用してファイルを読み取ろうとしています。
私が得ているエラーは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