13

如何在 IntelliJ 或 Eclipse 中完成相当于在命令行上运行以下行......:

java MyJava < SomeTextFile.txt

我试图在 IntelliJ 的运行/调试配置的程序参数字段中提供文件的位置

4

3 回答 3

6

正如@Maba 所说,我们不能在 eclipse/intellij 中使用输入重定向运算符(任何重定向运算符),因为没有 shell,但您可以通过标准输入模拟从文件读取的输入,如下所示

       InputStream stdin = null;
        try
        {
        stdin = System.in;
        //Give the file path
        FileInputStream stream = new FileInputStream("SomeTextFile.txt");
        System.setIn(stream);
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
                    br.close(); 
                    stream.close()

        //Reset System instream in finally clause
        }finally{             
            System.setIn(stdin);
        }
于 2012-08-18T14:47:20.707 回答
2

您不能直接在 Intellij 中执行此操作,但我正在开发一个插件,该插件允许将文件重定向到标准输入。有关详细信息,请参阅我对类似问题的回答 [1] 或尝试使用插件 [2]。

[1]在intellij中运行程序时模拟来自stdin的输入

[2] https://github.com/raymi/opcplugin

于 2014-02-22T22:32:09.630 回答
0

为此,您可以使用BufferedReader从系统输入中读取:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String line;
while ((line = br.readLine()) != null) {
    System.out.println(line);
}
于 2012-08-18T13:22:40.933 回答