javaIO 输出重定向

我们平时使用Syetem.out.println()打印的时候都是打印在控制台的,在java中也可以打印到文件中:

System类的setOut()方法改变了输出流,System类的out、err 和in成员变量是final类型的,不能直接赋值,要通过应的setters方法来改变流。

1. setOut()方法

该方法用于重新分配System类的标准输出流out。方法的声明如下:

public static void setOut(PrintStream out)

参数说明

out:新的PrintStream输出流对象。

2.setErr() 方法

该方法将重新分配System类的标准错误输出流err。方法的声明如下:

public static void setErr(PrintStream err)

参数说明

err:新的PrintStream输出流对象。

3.setln()方法

该方法将重新设置System类的in成员变量,即标准输入流。方法的声明如:

public static void setIn(lnputStream in)

参数说明

in:新的InputStrcam输入流对象。

注意:调用之前要记得把原来的标准输出流对象System.out备份,以便后面恢复。


代码:

import java.io.FileNotFoundException;
import java.io.PrintStream;

public class RedirectOutputStream
{
    public static void main(String[] args)
    {
        try
        {
            System.out.println(System.out);
            PrintStream out = System.out; // 保存原输出流,这步很重要,不然就恢复不回来
            PrintStream ps = new PrintStream("输出重定向.txt"); // 创建文件输出流
            System.setOut(ps); // 设置使用新的输出流,System.out.XXX将输入到文件中
            System.out.println(System.out);
            int age = 18;         // 定义整型变量
            System.out.println("age="+age);
            String string="字符串";
            System.out.println("string="+string);
            System.setOut(out); // 恢复原有的输出流
            System.out.println("程序运行完毕,请査看日志文件。");
        } catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }

    }
}

运行结果:

java.io.PrintStream@15db9742
程序运行完毕,请査看日志文件。

输出重定向.txt:

java.io.PrintStream@6d06d69c
age=18
string=字符串

猜你喜欢

转载自blog.csdn.net/qq_21808961/article/details/80292219