将由 Java System.in 读取的写入输出



有没有办法写入将由 System.in 输入流读取的输出流? 例如:

BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.in));

除了这不起作用,因为 System.in 是一个输入流,而OutputStreamWriter接受一个输出流。

我想输出一些将被读取的内容:

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

我正在尝试做的是为控制台应用程序编写单元测试。 我想以编程方式测试我的输入。 任何方法都可以回答我的问题。

您应该从

System对象中查看setIn()方法。http://docs.oracle.com/javase/6/docs/api/java/lang/System.html#setIn%28java.io.InputStream%29

它将允许您重新分配系统输入流。

我的建议是你用method(String/int var)制作方法,并有一个单独的解析器。 然后,您可以测试所有方法,而无需输入。这是单元测试的标准配置。

你可以写入和读取stdin/stdout,但我会重构你的代码,将你如何获得输入与你它做什么分开。

这样,您可以直接从单元测试中调用"do it"代码。

它还允许将其他输入源轻松插入到您的代码中,例如文件内容、网页内容等。

最新更新