实例 20 重定向输出流实现程序日志

java的文件输出流和c这类的文件比起来简直不是方便了一倍两倍啊。

System类的setOut方法可以修改输出流。

System类的out、err、in成员变量是final类的,不能直接赋值。要通过相应方法来改变流。

setOut()

用于重新分配System类标准输出流

setErr()

重新分配System的标准错误输出流

setIn()

重新分配System类的标准输入流

package test;

import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;

/**
 * @author 年浩
 *
 */
public class test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try{
            PrintStream out = System.out;
            PrintStream ps = new PrintStream("./log.txt");//设置文件输出流
            System.setOut(ps);
            int age = 18;
            System.out.println("年龄变量定义成功,初始值为 "+age+" .");
            String sex = "女";
            System.out.println("性别变量定义成功,初始值为 "+sex+" .");
            String info = "这是一个"+sex+"孩子,今年"+age+"了";
            System.out.println("整合的变量info为:"+info);
            System.setOut(out);//回复原来的输出流
            System.out.println("程序执行完毕,请查看日志文件");
        }catch(FileNotFoundException e){
            e.printStackTrace();

        }

    }

}

时间: 2024-10-09 17:09:06

实例 20 重定向输出流实现程序日志的相关文章

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

实例说明: System类中的out成员变量是Java的标准输出流,程序中经常用他来输出调试信息.out成员变量被定义成final类型的,无法直接重新复制,但是可以通过setOut()方法来设置新的输出流. 1 package com.zeone.lifeline.test; 2 3 import java.io.PrintStream; 4 5 public class RedirectOutputStream { 6 public static void main(String[] args

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

public class RedirectOutputStream {       public static void main(String[] args) {try {PrintStream out = System.out;                 //保存原输出流PrintStream ps = new PrintStream("/log.txt"); //创建文件输出流System.setOut(ps);                            //设

java笔记--重定向输出流实现程序输出到日志

重定向输出流实现程序输出到日志 利用System类中的setOut()方法,实现输出流的重定向,把它指向一个文件输出流,从而实现日志功能.即: 程序运行后绘制控制台提示运行结束信息,但是在运行过程中的步骤都保存到了日志文件中. 主要方法setOut(): 重新分配System类的标准输出流. public static void setOut(PrintStream out) out表示新的输出流对象 setErr() 重新分配System类的标准错误输出流. public static voi

利用C#自带组件强壮程序日志

前言 在项目正式上线后,如果出现错误.异常.崩溃等情况, 我们往往第一想到的事就是查看日志. 所以日志对于一个系统的维护是非常重要的. 声明 本文中的示例代码旨在这个框架是怎么工作的,具体实现可以自由发挥. 贯穿所有的日志系统 日志系统,往往是贯穿一个程序的所有代码的; 试想一下,如果你的日志完全是由第三方组件提供的; 那么就意味着,你的所有项目都必须引用这个dll; 也许你会说自己可以2次封装,那么依然需要所有项目都引用你的这个封装后的log项目, 另一方面 一些log组件需要实例化后才可以使

程序日志--ios“文字长度--button与label的交互”程序

我的学习日志003:"文字长度--button与label的交互"程序 交代一下我做程序的工具:mac os x虚拟机10.9.3         Xcode6         百度^-^         参考书iPhone30天精通(本书已经过时,但是还有一定的参考价值,可以引导正确的学习方向). 没什么新的知识点,直接放步骤和代码. XCode新建SingleView程序,viewControllor.h代码如下: #import <UIKit/UIKit.h> #im

Android Widget 开发实例:桌面便签程序的实现详解和源码

桌面便签软件是Android上常用软件的一种,比如比较早的Sticky Note,就曾非常流行,而实际上使用android平台对widget开发的支持,桌面便签类软件是非常易于开发的. 本文通过逐步实现一个简单的桌面便签软件,和大家分享进行widget开发的过程和方法. 同时本程序提供完整的工程源码下载 免费下载地址在 http://linux.linuxidc.com/ 用户名与密码都是www.linuxidc.com 具体下载目录在 /pub/Android源码集锦/2011年/10月/An

重定向输出流练习 ToLog

public class ToLog { public static void main(String[] args) throws Exception { //准备日志文件 File f = new File("log.txt"); if(!f.exists()){ f.createNewFile(); } //设置输出流 PrintStream out = System.out; PrintStream ps = new PrintStream(f); System.setOut(

Android开发实例之多点触控程序

智能终端设备的多点触控操作为我们带来了种种炫酷体验,这也使得很多Android开发者都对多点触控程序的开发感兴趣.实际上多点触控程序的实现并不是那么遥不可及,而是比较容易.本文就主要通过一个实例具体讲解多点触控程序的实现. 首先来了解一下Android中多点触控的原理. Android多点触控在本质上需要LCD驱动和程序本身设计上支持,目前市面上HTC.Motorola和Samsung等知名厂商只要使用电容屏触控原理的手机均可以支持多点触控Multitouch技术,对于网页缩放.手势操作上有更好

[转]利用C#自带组件强壮程序日志

利用C#自带组件强壮程序日志 在项目正式上线后,如果出现错误,异常,崩溃等情况 我们往往第一想到的事就是查看日志 所以日志对于一个系统的维护是非常重要的 声明 正文中的代码只是一个栗子,一个非常简单的栗子,只是说明这个框架是怎么工作的 具体实现可以自由发挥~~~~ 贯穿所有的日志系统 日志系统,往往是贯穿一个程序的所有代码的; 试想一下,如果你的日志完全是由第三方组件提供的; 那么就意味着,你的所有项目都必须引用这个dll; 也许你会说自己可以2次封装,那么依然需要所有项目都引用你的这个封装后的