在 IntelliJ 调试/运行中将字符串缓冲区传递给 java 程序

2022-09-04 22:36:19

如何完成在IntelliJ或Eclipse中的命令行上运行以下行的等效方法....:

java MyJava < SomeTextFile.txt

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


答案 1

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

       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);
        }

答案 2

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

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

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


推荐