Java重定向
概念:
在 Java 中,重定向(Redirect)通常指的是将标准输入、输出和错误流重定向到其他地方,如文件、流或其他输出源。Java 提供了
System.setIn()
,System.setOut()
,System.setErr()
方法来实现标准输入、输出和错误流的重定向。
常见的重定向操作:
- 重定向标准输出流:
PrintStream fileOut = new PrintStream(new FileOutputStream("output.txt")); System.setOut(fileOut); System.out.println("Hello, redirected output!");
- 重定向标准错误流:
PrintStream fileErr = new PrintStream(new FileOutputStream("error.txt")); System.setErr(fileErr); System.err.println("Error message, redirected error output!");
- 重定向标准输入流:
FileInputStream fileIn = new FileInputStream("input.txt"); System.setIn(fileIn); Scanner scanner = new Scanner(System.in); String input = scanner.nextLine(); System.out.println("Input from file: " + input);
应用场景:
通过重定向标准输入、输出和错误流,可以将程序的输出结果、错误信息或输入内容重定向到指定的位置,如文件或其他输出源。这在一些特定场景下非常有用,例如日志记录、测试输入输出等。
注意: 在重定向完成后,记得恢复标准输入输出流,以免影响其他部分代码的正常运行。
示例:
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class Test05 {
public static void main(String[] args) throws FileNotFoundException {
//重定向:重新定义系统标准错误输出流的方向(程序->文件)
System.setErr(new PrintStream(new FileOutputStream("io.txt",true)));
PrintStream ps = System.err;
ps.println("Java重定向的标准错误输出流");
}
}
理解(重要)
概念理解:重定向也就是重新定义系统标准的输入流、输出流、错误输出流的方向。
操作理解:
System.in:获取系统标准输入流的方向(控制台->程序)
System.out:获取系统标准输出流的方向(程序->控制台)
System.err:获取系统标准错误输出流的方向(程序->控制台)