我创建了一个算法来读取文件并检查用户输入的多个问题。我正在使用 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 是在更正我的代码,还是只是删除文件的关闭?这是做这件事的更好方法吗?除非我确切地知道发生了什么,否则我不喜欢使用代码。