【发布时间】:2016-04-20 10:05:04
【问题描述】:
这个问题把我难住了。我编写了一个从循环内部调用的方法。第一次完美运行,之后就挂了。
这是方法:
public static String promptUser(){
String path = "";
Scanner reader = new Scanner(System.in);
while (!path.contains(ROOT_FOLDER)){
System.out.println(String.format("Please paste in the directory path from WinSCP, including %s: ", ROOT_FOLDER));
while (true) {
if (reader.hasNext()){
path = reader.nextLine();
break;
}
}
}
reader.close();
return path;
}
这就是循环
while (true) {
try {
listFiles(promptUser());
break;
}
catch (Exception e) {
e.printStackTrace();
System.err.println(e.getMessage());
}
}
我第一次运行它时,它会提示用户尽可能多地获取我们需要的信息(目录路径)。然后它会向 FTP 服务器发送一个请求,如果该路径不存在,我希望它继续提示用户。但是我的调试器在第二轮告诉我它只是挂起:
if (reader.hasNext()){
按回车键再多也不会让它继续。在第一次调用 promptUser 时,我可以在没有根文件夹的情况下输入一些内容,它会一直询问直到它获得根文件夹。那么为什么它不在第二次调用时这样做呢?
发生了什么事?
【问题讨论】:
标签: java java.util.scanner system.in