如何将stdin和stdout重定向到java中的文本文件

sla*_*der -2 java

如何重定向stdin和stdout以将数据作为文本文件的输入并将数据作为输出传递给另一个文本文件.

我的输入和输出文件看起来像这样.

输入File.txt

1 2 3
Run Code Online (Sandbox Code Playgroud)

输出应该是输入文件中数字的总和.

输出File.txt

6
Run Code Online (Sandbox Code Playgroud)

sid*_*ate 8

您可以将System.outSystem.in设置为文件路径。那么你现有的代码应该可以工作

System.setIn(new FileInputStream(new File("input.txt")));
...
//read from file
.... 

System.setOut(new PrintStream(new File("filename.txt")));
System.out.println(sum); // will be printed to the file    
Run Code Online (Sandbox Code Playgroud)


Thi*_*ilo 6

您不必在Java中执行此操作,您可以从运行Java应用程序的shell执行此操作:

# cat input.txt | java -jar myapp.jar > output.txt
Run Code Online (Sandbox Code Playgroud)

然后,Java代码可以从System.in读取并写入System.out.