我希望有一个方法返回while循环中的presentend值。我的代码表示读取txt文件,我逐行读取,我的目标是每次找到一行时返回,但是反复向我显示相同的数字。
public String getInputsTxtFromConsole() {
String line = "";
//read inputs file
try {
Scanner scanner = new Scanner(inputFile);
//read the file line by line
int lineNum = 0;
while (scanner.hasNextLine()) {
line = scanner.nextLine();
lineNum++;
//Return statement does not work here
}
} catch (FileNotFoundException e) {
}
return "";
}
答案 0 :(得分:0)
正如Nick A所说,返回的使用有两个用途:返回一个函数的值并退出函数。我需要你可以生成的所有值,例如,
调用使用新值的方法:
line = scanner.nextLine();
lineNum++;
//Return statement does not work here
ConsumerMethod(line);
}
存储在全局var中,如ArrayList,String [],...
但是你不能返回一个值并期望该函数继续工作。
答案 1 :(得分:0)
正如我所提到的,将相同的扫描仪作为参数传递给读取线并返回线的方法。您可能想要定义一旦没有剩余行就会如何响应。
public String getInputsTxtFromConsole(Scanner scanner) {
try {
if (scanner.hasNextLine()) {
return scanner.nextLine();
}
} catch (FileNotFoundException e) {
}
return null;
}
我还建议使用不同的类来读取文件。 BufferedReader将是一种更好的方法。
BufferedReader in = new BufferedReader(new FileReader (file));
... // in your method
return in.readLine(); //return null if the end of the stream has been reached