Java文件夹路径校验循环异常求助:正确路径仍被重复要求输入
问题分析与解决:文件夹路径校验循环异常
你的代码出现该问题的核心原因是:仅在程序初始化时执行了一次路径存在性校验,后续用户重新输入路径后,没有更新File实例和exists变量的状态,循环始终使用第一次的校验结果,导致逻辑异常。
修改后的代码
import java.io.File; import java.io.IOException; import java.util.Scanner; public class JavaProject { public static void main(String[] args) throws IOException { System.out.println("Give me the path of the folder"); Scanner fold = new Scanner(System.in); boolean folderIsValid = true; while (folderIsValid) { // 每次循环都读取新路径并创建File对象,重新校验存在性 String folderName = fold.nextLine(); File f = new File(folderName); boolean exists = f.exists(); if (!exists) { System.out.println("The folder you are searching does not exist"); System.out.println("Try again!"); } else { System.out.println("The folder you are searching exists"); folderIsValid = false; } } fold.close(); // 关闭Scanner资源,符合Java资源管理规范 } }
关键改动说明
- 将
File对象创建、路径存在性校验逻辑移到while循环内部,确保用户每次输入新路径后都会重新执行校验 - 移除了初始的重复路径读取和校验代码,精简逻辑
- 添加
Scanner资源关闭操作,避免资源泄漏 - 简化提示文本,去掉冗余的变量状态输出
内容的提问来源于stack exchange,提问作者Lian
相关产品推荐
相关产品推荐

