intellij idea - para - Simular la entrada de stdin al ejecutar un programa en intellij
intellij idea para linux (2)
Aquí hay una plantilla para una solución que tiene opciones para:
- stdin
- archivo
- "heredoc" dentro del programa (muy probablemente útil para probar)
.
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 =>
Este fragmento requiere el uso de un StringInputStream, y aquí está:
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
}
}
}
¿Hay alguna forma de configurar los argumentos de la línea de comando a intellij para la redirección stdin?
Algo como:
Ejecutar | Editar configuraciones de ejecución | Parámetros de script
/shared/java/paf-rules.properties 2 < /shared/java/testdata.csv
Desafortunadamente, no, al menos no directamente en las configuraciones de ejecución.
Lo mejor que puedes hacer, afaik, es:
modifique su script / programa para que se ejecute sin args (lee
System.in
) o con un argumento de nombre de archivo (lee el archivo)hacer una secuencia de comandos script / programa que actúa de la manera anterior.
Espero que esto ayude,
vikingsteve