文件读取器无法定位文件抛出异常:Eclipse工作区文件读取失败求助
哥们,我碰到过好多次这种Eclipse里找不到文件的情况,虽然你说路径没问题,但大概率是这几个细节没注意到,一个个排查试试:
先确认文件实际位置和代码路径是否匹配
别光看Eclipse里的项目结构,去本地磁盘找项目的真实路径(右键项目 → Properties → Resource → Location就能看到)。如果代码里用的是相对路径Inspirational_Quotes.txt,那文件必须直接放在这个项目根目录下,而不是src或者其他子文件夹里。要是文件在src里,代码路径就得写成src/Inspirational_Quotes.txt。确保文件被加入构建路径,部署到运行环境
Eclipse默认只会把Java文件编译到输出目录(比如bin文件夹),像txt这种资源文件得手动加进构建路径才会被复制过去。右键你的txt文件 → Build Path → Add to Build Path,之后再运行试试,这招解决过我80%的类似问题。检查文件名的大小写
要是你在Windows上开发但部署到Linux/macOS环境,或者代码里写的文件名大小写和实际文件不一样,就会踩这个坑。比如代码里写inspirational_quotes.txt,实际是Inspirational_Quotes.txt,Windows没事,但Linux下直接找不到,一定要完全匹配。试试用类加载器读取(更靠谱的方式)
相对路径容易踩工作目录的坑,用类加载器读取资源文件更稳定,尤其是Maven/Gradle项目。代码示例:// 注意前面的斜杠表示从类路径根目录找 InputStream is = getClass().getResourceAsStream("/Inspirational_Quotes.txt"); if (is == null) { throw new FileNotFoundException("找不到Inspirational_Quotes.txt文件"); } BufferedReader reader = new BufferedReader(new InputStreamReader(is)); // 后续读取逻辑...用这种方式的话,把txt文件放在src目录下(或者resources目录)就行,Eclipse会自动把它复制到输出目录的类路径里。
刷新项目或重启Eclipse
有时候Eclipse的资源缓存抽风,刚添加的文件识别不到。右键项目 → Refresh,或者干脆重启Eclipse,说不定就好了。
内容的提问来源于stack exchange,提问作者Algorithmist

