Is there any way to configure the command line args to intellij for stdin redirection?
Something along the lines of:
Run | Edit Run Configurations | Script Parameters
/shared/java/paf-rules.properties 2 < /shared/java/testdata.csv
Unfortunately, no - at least not directly in run configurations.
The best you can do, afaik, is either to:
modify your script / program to run either with no args (reads System.in
) or with a filename argument (reads the file)
make a wrapper script / program which acts in the manner above.
Hope this helps,
vikingsteve
Here is a template for a solution that has options for:
.
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 =>
This snippet requires use of a StringInputStream - and here it is:
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
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With