问题
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
回答1:
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);
}
回答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
回答3:
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);
}
来源:https://stackoverflow.com/questions/12018813/passing-string-buffer-to-java-program-in-intellij-debug-run