13

How does one accomplish equivalent of running following line on command line in IntelliJ or Eclipse .... :

java MyJava < SomeTextFile.txt

I've attempted to provide location of the file in Program Arguments field of Run/Debug Configuration in IntelliJ

DblD
  • 201
  • 3
  • 7
  • 1
    I think that has more to do with what shell you are using when issuing the command. When running from IntelliJ/Eclipse I guess that no shell is being used at all. – maba Aug 18 '12 at 13:23

3 Answers3

6

As @Maba said we can not use Input redirection operator (any redirection operator) in eclipse/intellij as there no shell but you can simulate the input reading from a file through stdin like the below

       InputStream stdin = null;
        try
        {
        stdin = System.in;
        //Give the file path
        FileInputStream stream = new FileInputStream("SomeTextFile.txt");
        System.setIn(stream);
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
                    br.close(); 
                    stream.close()

        //Reset System instream in finally clause
        }finally{             
            System.setIn(stdin);
        }
Dungeon Hunter
  • 19,827
  • 13
  • 59
  • 82
2

You can't do this directly in Intellij but I'm working on a plugin which allows a file to be redirected to stdin. For details see my answer to a similar question here [1] or give the plugin a try [2].

[1] Simulate input from stdin when running a program in intellij

[2] https://github.com/raymi/opcplugin

Community
  • 1
  • 1
raymi
  • 1,872
  • 2
  • 20
  • 22
0

You can use BufferedReader for this purpose to read from system input:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String line;
while ((line = br.readLine()) != null) {
    System.out.println(line);
}
Reimeus
  • 158,255
  • 15
  • 216
  • 276
  • I'm using BufferedInputStream in MyJava application. Question is how to pass the number of arguments to this program trough the IntelliJ or Eclipse in similar manner as one would do that from the bash command line as illustrated above. – DblD Aug 18 '12 at 14:48