gpt4 book ai didi

java - 将任意流连接到标准输入

转载 作者:行者123 更新时间:2023-12-01 15:13:06 25 4
gpt4 key购买 nike

我有一个程序需要处理来自 Standard-In 的数据。我可以像这样在命令行上调用它 java program < input 。我想为其 main() 编写一个适当的单元测试。是否可以将方法的 System.in 与其他流重新关联?

在测试中,我可以读取示例数据,然后以某种方式运行原始程序,并将其标准输入连接到我定义的某个流(来自示例数据),并验证它是否返回我期望的内容。我考虑过使用这些类: PipedInputStreamPipedOutputStream 。但这需要我每次测试时都修改原始程序以从 PipedInputStream 读取。或者,我可以将流读取隔离到函数中(例如 parseStream(InputStream) )并传递已连接到示例数据的 PipedInputStream。

我还可以编写一个 shell 脚本来将我想要的任何内容通过管道传输到其标准输入中,但是所讨论的方法将是一系列处理步骤的一部分,因此它本身不应该写入标准输出并实际上返回 ArrayList 。其中 SomeCompositeType 包含以结构化方式读取的数据(例如一些整数、数组、映射等)

那么是否可以调用一些使用不同流从 System.in 读取的方法?

最佳答案

参见my comment .

您似乎想要的内容由 System.setIn 提供:-)

关于java - 将任意流连接到标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12031048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com