在intellij中运行程序时模拟stdin的input

有什么办法将命令行参数configuration为intellij为标准inputredirect?

有些东西是:

运行| 编辑运行configuration| 脚本参数

/shared/java/paf-rules.properties 2 < /shared/java/testdata.csv 

不幸的是,没有 – 至less不是直接在运行configuration。

你可以做的最好的,afaik,是要么:

  • 修改您的脚本/程序以运行无参数(读取System.in )或文件名参数(读取文件)

  • 做一个包装脚本/程序以上述方式行事。

希望这可以帮助,

vikingsteve

以下是可用于以下选项的解决scheme的模板:

  • 标准input
  • 文件
  • 程序中的“heredoc”(最有可能用于testing)

  val input = """ Some string for testing ... """ def main(args: Array[String]) { val is = if (args.length >= 1) { if (args(0) == "testdata") { new StringInputStream(input) } else { new FileInputStream(args(0)) } } else { System.in } import scala.io._ Source.fromInputStream(is).getLines.foreach { line => 

这个片段需要使用一个StringInputStream – 这里是:

  class StringInputStream(str : String) extends InputStream { var ptr = 0 var len = str.length override def read(): Int = { if (ptr < len) { ptr+=1 str.charAt(ptr-1) } else { -1 } } }