Simuler entrée stdin lors de l'exécution d'un programme à l'ide
Existe-t-il un moyen de configurer les args de ligne de commande à intellij pour la redirection stdin?
Quelque chose du genre:
Exécuter / Modifier Les Configurations D'Exécution / Paramètres De Script
/shared/java/paf-rules.properties 2 < /shared/java/testdata.csv
37
demandé sur
javadba
2013-08-26 09:25:36
2 réponses
Malheureusement, non-du moins pas directement dans les configurations d'exécution.
Le mieux que vous pouvez faire, afaik, est soit de:
-
Modifiez votre script / programme pour qu'il s'exécute sans args (lit
System.in
) ou avec un argument filename (lit le fichier) Créez un script / programme wrapper qui agit de la manière ci-dessus.
J'espère que cela aide,
Vikingsteve
15
répondu
vikingsteve
2013-08-26 12:12:17
Voici un modèle pour une solution qui a des options pour:
- stdin
- fichier
- "heredoc" dans le programme (très probablement utile pour les tests)
.
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 =>
Cet extrait nécessite l'utilisation D'un StringInputStream - et le voici:
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
}
}
}
1
répondu
javadba
2017-10-29 14:29:10