Java - 将字符串注入Scanner

时间:2014-03-31 21:48:25

标签: java io java.util.scanner

我的方法使用通过Scanner初始化的私有new Scanner(System.in);

我从上下文中调用此方法,我尝试向该Scanner实例提供输入,就好像我是命令行中的程序用户一样。例如,如果我有以下功能:

public void getColor(){
    ...
    System.out.print("Enter a color: ");
    scanner.next();
    ...
}

我想在调用scanner之后为Scanner提供一种颜色,这是getColor()的一个实例。这在Java中是否可行?

编辑:请注意,我试图在测试环境中执行此操作。这可能是一个非常重要的细节!

2 个答案:

答案 0 :(得分:0)

使用ByteArrayInputStream。通过在您感兴趣的String上调用String.getBytes()来获取构造它的字节。简单!

答案 1 :(得分:0)

我使用的是JUnit,发现我可以使用System Rules' TextFromStandardInputStream实用程序来提供Scanner的确切数量和输入类型。

但是,对于无法访问JUnit的个人来说,似乎System.setIn()也可以完成工作。