ファイルを読み込み、ユーザー入力の複数の質問をチェックするアルゴリズムを作成しました。私は Netbeans を使用していますが、リソースを試してみることを提案しています。よくわからないのは、ファイルを閉じることです。最初にアルゴリズムを作成したとき、 file.close() を間違った場所に置きました。その前に「return」ステートメントがあったために到達できなかったためです。
while (inputFile.hasNext()) {
String word = inputFile.nextLine();
for (int i = 0; i < sentance.length; i++) {
for (int j = 0; j < punc.length; j++) {
if (sentance[i].equalsIgnoreCase(word + punc[j])) {
return "I am a newborn. Not even a year old yet.";
}
}
}
}
inputFile.close(); // Problem
だから私はこれでそれを修正しました:
File file = new File("src/res/AgeQs.dat");
Scanner inputFile = new Scanner(file);
while (inputFile.hasNext()) {
String word = inputFile.nextLine();
for (int i = 0; i < sentance.length; i++) {
for (int j = 0; j < punc.length; j++) {
if (sentance[i].equalsIgnoreCase(word + punc[j])) {
inputFile.close(); // Problem fixed
return "I am a newborn. Not even a year old yet.";
}
}
}
}
問題は、間違った方法で設定したときに、Netbeans が次のように提案したことです。
File file = new File("src/res/AgeQs.dat");
try (Scanner inputFile = new Scanner(file)) {
while (inputFile.hasNext()) {
String word = inputFile.nextLine();
for (int i = 0; i < sentance.length; i++) {
for (int j = 0; j < punc.length; j++) {
if (sentance[i].equalsIgnoreCase(word + punc[j])) {
return "I am a newborn. Not even a year old yet.";
}
}
}
}
}
Netbeans が私のコードを修正しているのか、それとも単にファイルのクローズを削除しているのか? これはこれを行うためのより良い方法ですか?何が起こっているのかを正確に理解していない限り、コードを使用するのは好きではありません。