SimpleReader1L读取lines.txt触发文件不存在断言错误如何解决
问题根因
你遇到的报错本质是SimpleReader1L构造方法读取本地文件时,没有在你输入的路径下找到对应文件。从源码逻辑可以看到,传入的文件名会先尝试按URL解析,解析失败就会按本地文件路径读取,你只输入lines.txt时,程序默认从Java进程的当前工作目录查找文件,而你把文件存放在Data文件夹下,自然匹配不到。
可行解决方案
方案1:直接输入文件绝对路径
Windows系统输入格式示例:D:\\你的项目路径\\Data\\lines.txt
macOS/Linux系统输入格式示例:/Users/你的用户名/项目路径/Data/lines.txt
绝对路径可以唯一锁定文件位置,不受工作目录影响。方案2:输入相对于当前工作目录的路径
你可以先在业务代码的String inputFileName = in.nextLine();之前加入一行代码确认当前工作目录:System.out.println("当前工作目录:" + System.getProperty("user.dir"));运行程序后输出的路径就是程序默认查找文件的目录,假设Data文件夹就在该目录下,你直接输入
Data/lines.txt即可正常读取文件。方案3:调整文件存放位置
直接把lines.txt从Data文件夹移动到上面打印出来的当前工作目录下,之后程序运行时直接输入lines.txt就能正常识别。
内容的提问来源于stack exchange,提问作者The highlight
相关产品推荐
相关产品推荐

