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

Dbl*_*blD 13 java intellij-idea stringbuffer

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

java MyJava < SomeTextFile.txt
Run Code Online (Sandbox Code Playgroud)

我试图在IntelliJ中的Run/Debug Configuration的Program Arguments字段中提供文件的位置

Dun*_*ter 6

正如@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);
        }
Run Code Online (Sandbox Code Playgroud)


Rei*_*eus 0

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

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

String line;
while ((line = br.readLine()) != null) {
    System.out.println(line);
}
Run Code Online (Sandbox Code Playgroud)