You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse环境下标准输入CSV解析无法检测EOF问题咨询

问题根因

这个是Eclipse 2021-06及周边几个版本的缺陷,触发场景就是通过运行配置的「Common」标签页绑定文件作为标准输入时,Eclipse的控制台管道实现不会在文件内容读完后向输入流发送EOF标记,导致读取流的native方法无限阻塞等待后续输入,和CSV解析器本身无关,这也符合你在Eclipse外通过系统输入重定向运行正常的表现。

可用解决方案

  • 方案1:升级Eclipse到2022-03及以上版本,该缺陷在后续版本的控制台管道重构中被修复,升级后原有绑定标准输入的逻辑可以正常触发EOF。
  • 方案2:如果暂时无法升级Eclipse,可以修改代码逻辑,给标准输入读取加终止条件,你可以提前获取绑定的CSV文件的总大小或总行数,读取到对应阈值后主动终止循环,示例如下:
// 仅在Eclipse调试场景启用该逻辑,生产环境保留原有读取逻辑
long expectedLineCount = 1000; // 替换为你的CSV文件实际行数
long readLineCount = 0;
var isr = new InputStreamReader(System.in);
var br = new BufferedReader(isr);
var reader = new CSVReader(br);
while ( (csv_record = reader.readNext()) != null) {
    readLineCount++;
    // 业务逻辑
    // foo
    if (readLineCount >= expectedLineCount) {
        break;
    }
}
  • 方案3:不使用Eclipse运行配置的绑定标准输入功能,调试阶段直接在代码中读取本地CSV文件路径,上线前再改回读取System.in即可。
  • 方案4:通过外部终端运行程序,在运行配置的「Common」标签页下勾选「外部终端」选项,调用系统原生终端处理输入重定向,也可以正常触发EOF。

内容的提问来源于stack exchange,提问作者Underhill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:06:08