在调试的IntelliJ传递字符串缓冲区java程序/运行(Passing string buffe

2019-07-31 02:08发布

一个人如何下在的IntelliJ或者Eclipse ....命令行线完成运行相当于:

java MyJava < SomeTextFile.txt

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

Answer 1:

正如@Maba说我们不能在Eclipse /的IntelliJ,因为没有外壳使用输入重定向操作符(任何重定向操作),但你可以通过像下面的标准输入模拟输入从文件中读取

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


Answer 2:

你不能这样做直接的IntelliJ但我工作的一个插件,它允许一个文件被重定向到标准输入。 有关详情请参阅我的答案在这里类似的问题[1]或给插件一试[2]。

[1] 在运行中的IntelliJ程序时模拟从stdin输入

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



Answer 3:

您可以使用的BufferedReader为此,从系统输入如下:

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

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


文章来源: Passing string buffer to java program in IntelliJ debug/run