java重定向程序的标准输出System.out到文件

转载 2013年12月06日 09:52:47

http://outofmemory.cn/code-snippet/2307/java-redirect-program-standard-output-System-out-come-file

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
/**
 * Main.java
 *
 * @author outofmemory.cn
 */
public class Main {

    /**
     *将System.out重定向到文件

     *
     */
    public void redirectSystemOut() {

        try {

            System.setOut(new PrintStream(new FileOutputStream("system_out.txt")));

 

//System.setOut(new PrintStream(new LoggerStream(Logger.getLogger("out"),Level.INFO, System.out)));

 

        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
            return;
        }

        System.out.println("This won't get displayed on the console, but sent to the file system_out.txt");

    }
    /**
     * 启动程序

     *
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        new Main().redirectSystemOut();
    }
}

 

 

public class LoggerStream extends OutputStream {

private final Logger logger;

private final Level logLevel;

private final OutputStream outputStream;

public LoggerStream(Logger logger, Level logLevel, OutputStream outputStream) {

super();

this.logger = logger;

this.logLevel = logLevel;

this.outputStream = outputStream;

}

@Override

 

public void write(byte[] b) throws IOException {

outputStream.write(b);

String string = new String(b);

if (!string.trim().isEmpty())

logger.log(logLevel, string);

}

@Override

 

public void write(byte[] b, int off, int len) throws IOException {

outputStream.write(b, off, len);

String string = new String(b, off, len);

if (!string.trim().isEmpty())

logger.log(logLevel, string);

}

@Override

 

public void write(int b) throws IOException {

outputStream.write(b);

String string = String.valueOf((char) b);

if (!string.trim().isEmpty())

logger.log(logLevel, string);

}

}

 

相关文章推荐

Java重定向标准输入/输出

Java的标准输入/输出分别通过System.in和System.out来代表,在默认的情况下分别代表键盘和显示器,当程序通过System.in来获得输入时,实际上是通过键盘获得输入。当程序通过Sys...

System.in与System.out(标准输入与输出)详解

1.标准输入System.in System.in作为InputStream类的对象实现标准输入,可以调用它的read方法来读取键盘数据。read方法有3种格式: public abstract...

java system.out.println与system.out.write

System.out.write是字节流,System.out.println一个是字符流 先说System.out.write class A { public static void ma...

swing 将system.out输出的信息重定向到JTEXTAREA

swing框架重定向控制台消息并且同步输出到JtextArea的解决思路及其中可能遇到的问题分析

Java基础(17):常用类—System类的标准流重定向与常用方法

System类的作用 System 类提供了标准输入、标准输出和错误输出流。对外部定义的属性和环境变量的访问。加载文件和库的方法。还有快速复制数组的一部分的实用方法。 了解System.in 、 S...

使用标准输出流(system.out)和打印流 (PrintWriter)来读取txt文件

在电脑某盘根目录下放一个文本文件.里面写一首诗(内容随意发挥).把诗的内容输出到控制台. 要求: 1.使用标准输出流(system.out)来做。 2.使用打印流;  (PrintWrite...

Java 文件流与标准流之间的重定向

在Java中操作标准输入输出设备,可以像普通文件那样进行流的输入与输出。基于这样一个原理,就可以实现文件流与标准流之间的重定向。 1、文件输入流重定向到标准输入流。 文件输入流重定向到标准输入流可...

python编写借助linux中的xinetd守护进程实现我们的网络程序(select、重定向标准输入输出)

典型的unix存在许多服务器。4.3 BSD面世之前,所有的这些服务都有进程与之关联。这些程序遵循unix系统服务的启动流程。而且每个服务执行几乎相同的启动任务:    (1 )创建套接字,将端口绑定...

Windows进程内标准输出重定向及其在程序调试上的应用

一、如何实现 打印调试信息的方法有很多,最常用的是使用标准输出设备(如printf、cout等),也可以用OutPutDebugString输出、用DebugView工具查看,还可以写入日志文件...

python同时标准输出和重定向到文件保存

先把代码贴出来,在http://www.crifan.com/summary_python_logging_module_usage/的基础上增加了部分内容#!/usr/bin/python # -*...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)