ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Day9---学习Java第三弹

2021-07-19 22:01:31  阅读:215  来源: 互联网

标签:输出 Java 变量 PrintStream Day9 System --- ps out


Java经典编程例题(二)

1、重定向输出流实现程序日志

System类中的out成员变量是Java的标准输出流,程序长用它来输出调试信息。out成员变量被定义为final类型的,无法直接重新复制,但是可以通过setOut()方法来设置新的输出流。

要求:创建redirect类,编写该类的main()主方法,在该方法中保存System类的out成员变量为临时变量,然后创建一个新的文件输出流,并把这个输出流设置为System类新的输出流。在程序关键位置输出调试信息,这些调试信息将通过新的输出流保存到日志文件中,最后恢复原有输出流并输出程序运行结束信息。

import java.io.FileNotFoundException;
import java.io.PrintStream;
public class redirect {

    public static void main(String[] args) {
        try {
            PrintStream out=System.out;  //保存原输出流
            PrintStream ps=new PrintStream("./log.txt");   //创建文件输出流
            System.setOut(ps);     //设置使用新的输出流
            int age=18;
            System.out.println("年龄变量成功定义,初始值为18");
            String sex="女";
            System.out.println("性别变量成功定义,初始值为女");
            //整合两个变量
            String info="这是个"+sex+"孩子,应该有"+age+"岁了。";
            System.out.println("整合两个变量为info字符串变量,其结果是:"+info);
            System.setOut(out);    //恢复原有输出流
            System.out.println("程序运行完毕,请查看日志文件。");
            
        }catch(FileNotFoundException e) {
            e.printStackTrace();
        }
    }

}

 

 

输出到桌面的 log.txt中的内容为:
年龄定义,初始值18
性别定义,女
整合了两个变量这是一个女孩子年龄为18

 

对于输出结果的详解析:


1.PrintStream out=System.out;
创建一个打印流out,此流已打开并准备接受输出数据。


2.PrintStream ps = new PrintStream("C:\\...");
创建又一具有指定文件名的打印流ps(不带自动刷新)


3.System.setOut(ps); //若去掉此句,则内容都会在console面板中输出
重新分配“标准”输出流,重定向输出到ps对象中(即指定路径名文件中)


4.System.out.println("年龄定义,初始值18");
在已定向的输出路径中打印输出字符串内容


5.System.setOut(out);
重定向输出到out对象中(即屏幕上)

 

标签:输出,Java,变量,PrintStream,Day9,System,---,ps,out
来源: https://www.cnblogs.com/rongzhang/p/15032489.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有