首页 > 解决方案 > 如果文件名已经存在,如何让用户再次输入文本文件名?

问题描述

 public static void textFileOpen(String fileName) throws IOException
    {
        while(true)
        {
            try
            {
                FileReader fileReader = new FileReader(fileName);
                LineNumberReader lineNumberReader = new LineNumberReader(fileReader);
                BufferedReader bufferedReader = new BufferedReader(fileReader);
                fileReader.close();
                bufferedReader.close();
                lineNumberReader.close();
            }
            catch(Exception ex) 
            {
                System.out.println("File " + fileName + " does not exists! Please try again.");                
            } 
        }
    }

如果存在,我试图让用户再次输入文件名。但是如果用户输入一个存在的文件名,它会永远运行。我该如何解决?有人可以帮忙吗?谢谢你

标签: java

解决方案


原因是您使用try(input). 由于扫描仪在第一次之后已经关闭catch,因此无法接受任何新的输入。

删除(input)并使用单独的input.close应该可以工作。


推荐阅读