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 system.out.printf()的使用方法

package test; public class Main { public static void main(String[] args) { // 定义一些变量,用来格式化输出。 ...

Java重定向标准输入/输出

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

把在程序中的System.out.print()的信息自动转成log4j日志信息

问题:老的系统中,程序未使用log4j,而是使用System.out.println()将信息打印到了tomcat。现在客户提出要保存打印到tomcat的日志信息,引入log4j固然需要,但修改代码及...

重定向控制台System.out.println输出到文件,再重定向回控制台

import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; ...

如何将System.out的内容重定向输出到一个界面上的文本框中?

//imports import javax.swing.JFrame; import javax.swing.JTextArea; import java.io.PrintStream; c...

Java重定向标准输入/输出

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

Window下让JAR在后台运行的方法

新建一个披处理 run.bat,内容如下   @echo off start javaw -jar xx.jar exit   双击运行即可。    由...
  • alibert
  • alibert
  • 2015年11月20日 11:14
  • 4970

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

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

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

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

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

在电脑某盘根目录下放一个文本文件.里面写一首诗(内容随意发挥).把诗的内容输出到控制台. 要求: 1.使用标准输出流(system.out)来做。 2.使用打印流;  (PrintWrite...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java重定向程序的标准输出System.out到文件
举报原因:
原因补充:

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