Eclipse IDE为何持续抛出‘InputStreamReader cannot be resolved to a type’错误?
问题原因及解决方法
核心原因
这个错误并非import语句的问题,而是Eclipse项目的Java构建路径(Build Path)出现异常,导致JDK核心类库未被正确识别。InputStreamReader是JDK自带java.io包的类,只要JDK配置正常、import语句正确,就不会出现无法解析的情况。
具体解决步骤
清理并刷新项目:
- 右键项目 → 选择
Clean...,在弹窗中勾选你的项目,点击OK完成清理。 - 清理完成后,右键项目 →
Refresh(或按F5)刷新项目。
- 右键项目 → 选择
检查JRE系统库配置:
- 右键项目 →
Build Path→Configure Build Path。 - 切换到
Libraries标签页,查看是否存在JRE System Library:- 若没有,点击
Add Library...→ 选择JRE System Library→ 按向导选择本地安装的JDK/JRE完成添加。 - 若已有但前方有红色叉号,选中它点击
Remove移除,再重新添加。
- 若没有,点击
- 右键项目 →
匹配Java版本:
在Configure Build Path的Java Compiler标签页,确保Compiler compliance level与添加的JRE版本一致(比如使用JDK 11就选11,不要选择高于JRE版本的级别)。
代码优化提示
你的代码当前仅创建了流但未写入内容,且手动关闭流的方式存在资源泄漏风险,建议使用try-with-resources语法自动管理资源:
package pruebaEscribirArchivo; import java.io.*; public class Main { public static void main(String[] args) { final String FILE_NAME="HolaMundo.txt"; File fileVar=new File(FILE_NAME); // try-with-resources会自动关闭实现AutoCloseable接口的资源 try (BufferedReader console = new BufferedReader(new InputStreamReader(System.in)); PrintWriter file = new PrintWriter(new FileWriter(fileVar))) { String input = console.readLine(); if (input != null) { file.println(input); } } catch(IOException e){ e.printStackTrace(System.err); } } }
内容的提问来源于stack exchange,提问作者moyoloco09
相关产品推荐
相关产品推荐

