如何检查文件是否存在,如果文件不存在,则循环再次请求新文件名?


public static String getFilename(Scanner getFile) throws FileNotFoundException { 
    System.out.print("nEnter file name: ");
    String filename = getFile.next();
    File f = new File(filename);
    if (f.exists()) {
        System.out.println(filename + " exists.");
    } else {
        System.out.println(filename + " does not exist.");
        getFilename(getFile);
    }
    return filename;
}

这是我当前的代码。它要求我键入一些文本,然后检查我键入的输入是否是文件。
如果该文件存在,我希望它将文件名存储为的字符串返回给我的主方法。
如果它不存在,我希望我的方法重新启动(?如何循环?我当前的方法只是重新调用整个方法,但是如果我运行此代码,任何不作为文件存在的输入/文件名都会出现错误。

File f = new File([filename]);
while(!f.exists()) {
    f = new File([newFilename]);
}
// Do what you want to do with the file.

这也允许您直接返回文件而不是文件名,但您可以像这样返回文件名:

String s = [filename];
File f = new File(s);
while(!f.exists()) {
    s = [newFilename];
    f = new File(s);
}
return s;

请记住,如果您从未提供真实文件,这将无限循环。

循环正是您所需要的。在您的方法中:

String fileName = "";
File f = new File(fileName);
while(!f.exists()) {
    System.out.println("Enter file name: ");
    fileName = getFile.next();
    f = new File(fileName);
}
return f;

基本上,代码将提示您输入文件,直到您输入存在的文件名。

这应该可以解决问题

String filename = null;
do{
    System.out.print("Enter file name: ");
    filename = getFile.nextLine();
} while (!new File(filename).exists());

在此循环之后,您确定filename引用存在的文件。

相关内容

  • 没有找到相关文章

最新更新