有没有办法将标准输入设置为Inttelij中的文件

时间:2016-05-02 03:33:42

标签: java intellij-idea

使用ProcessBuilder我可以将流程的标准输入重定向到文本文件。当我运行流程时System.in是此文件的流,Scanner将读取其行。

但是,如果我在Intellij中通过Run直接运行我的主类,我是否也可以将System.in设置为指向与通过流程构建器运行时相同的文本文件?

2 个答案:

答案 0 :(得分:1)

您可以致电System.setIn(InputStream) 重新分配"标准"输入流。像,

try {
    File file = new File("c:/log.txt");
    InputStream fileIn = new FileInputStream(file);
    System.setIn(fileIn);
} catch (Exception e) {
    e.printStackTrace();
}

答案 1 :(得分:1)

我理论,System.inInputStream,您应该可以打开FileInputStream,然后使用System.setIn向其传递参考

我说,"理论上"因为我这样做是谨慎的,事实上我要做的第一件事就是获得原始System.in InputStream的引用并在完成后重置它,因为我和#39;像那样挑剔