繁体   English   中英

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

[英]Write output that will be read by System.in, java

有没有办法写入将由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)来创建方法,并具有单独的解析器。 然后,您无需输入就可以测试所有方法。 这是单元测试中的标准。

你可以写和读标准输入/输出,但我会重构代码分离出你是如何从你用它做什么让你的输入。

这样,您可以直接从单元测试中调用“执行”代码。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM