bufferedreader在stdin上看不到文件结尾

wnrlj8wa  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(216)

我在读标准输入:

public static void main(String[] args) {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            for (;;) {
                var line = br.readLine();
                if (line == null) break;
                System.out.println(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        System.err.println("Done.");
    }

如果我在终端中使用这个:

java TheClass </path/to/file

... 它工作:程序运行到完成。
但是在eclipse下,如果我将同一个文件设置为标准输入(run configurations>common>standard input and output),程序将读取该文件,但它将挂起在最后一行之后,直到我在控制台窗口中输入ctrl-d(然后正常终止)。
同样在eclipse下,如果我直接使用文件(fileinputstream),那么文件将被读取到最后,程序将立即终止。
是我遗漏了什么还是这是一个日 eclipse 问题?
在带有openjdk 11的linux上使用eclipse2020-06。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题