如何检查main方法的输出



例如,使用以下主方法。

public class Solution {
   public static void main(String []argv)   {
       System.out.println("Hello World.");
       System.out.println("Hello Java.");
   }
}

我想知道一个平台(例如Hackerrank)的代码如何检查main方法是否打印出预期的输出。

Hello World.
Hello Java.

乍一看,想象一下如何与Junit合作并不容易。我相信一个外部程序正在检查输出,我的意思是这样的:

$ java Solution | runtests

感谢

您的猜测使用unix管道内衬肯定是可以做到这一点的一种方式。

在Java中,可以通过运行java命令并通过InputStream 读取输出来完成此操作

// Create and start the process
Process pb = new ProcessBuilder("java", "Solution").start();
// Create a reader to read in each output line
BufferedReader reader = new BufferedReader(new InputStreamReader(pb.getInputStream()));
String line;
// Read in line by line
while((line = reader.readLine()) != null) {
    // ...
}

请注意,ProcessBuilderstart()方法可以抛出IOException,因此需要对此进行说明。

相关内容

  • 没有找到相关文章

最新更新