15.5 重定向标准输入输出
15.5 重定向标准输入 输出
第7章介绍过,Java
的标准输入输出分别通过System.in
和System.out
来代表,在默认情况下它们分别代表键盘和显示器。
- 当程序通过
System.in
来获取输入时,实际上是从键盘读取输入; - 当程序试图通过
System.out
执行输出时,程序总是输出到屏幕。
System类重定向标准输入输出的方法
在System
类里提供了如下三个重定向标准输入输出的方法
方法 | 描述 |
---|---|
static void setErr(PrintStream err) |
重定向“标准”错误输出流。 |
static void setIn(InputStream in) |
重定向“标准”输入流。 |
static void setOut(PrintStream out) |
重定向“标准”输出流。 |
程序示例 输出重定向到文件中
下面程序通过重定向标准输出流,将System.out
的输出重定向到文件输出,而不是在屏幕上输出。
1 | import java.io.*; |
上面程序中创建了一个PrintStream
输出流,并将系统的标准输出重定向到该PrintStream
输出流。运行上面程序时将看不到任何输出——这意味着标准输出不再输出到屏幕,而是输出到out.txt
文件,运行结束后,打开系统当前路径下的out.txt
文件,即可看到文件里的内容,正好与程序中的输出一致。
程序示例 输入重定向到文件
下面程序重定向标准输入,从而可以将System.in
重定向到指定文件,而不是键盘输入
1 | import java.util.*; |
上面程序中的粗体字代码创建了一个FileInputStrean
输入流,并使用System
的setIn()
方法将系统标准输入重定向到该文件输入流。运行上面程序,程序不会等待用户输入,而是直接输出了RedirectIn.java
文件的内容,这表明程序不再使用键盘作为标准输入,而是使用RedirectIon.java
文件作为标准输入源.