有没有办法写入将由 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"代码。
它还允许将其他输入源轻松插入到您的代码中,例如文件内容、网页内容等。