FileOutputStream bos = new FileOutputStream("output.txt");

System.setOut(new PrintStream(bos));

System.out.println("output to output.txt");

这样,console的输出全部写入文件output.txt,但是控制台不会有输出信息。

如果希望控制台也有输出:

新建一个继承java.io.OutputStream的类,实现多输出方式

import java.io.IOException;

import java.io.OutputStream;

public class MultiOutputStream extends OutputStream {

OutputStream outputStream1,outputStream2;

public MultiOutputStream(OutputStream stream1, OutputStream stream2 )

throws IOException{

outputStream1 = stream1;

outputStream2 = stream2;

}

@Override

public void write(int b) throws IOException {

// TODO Auto-generated method stub

outputStream1.write(b);

outputStream2.write(b);

}

}

再调用该类的对象

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.PrintStream;

class Out2File {

/**

* @param args

* @throws IOException

*/

public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub

PrintStream oldPrintStream = System.out;

FileOutputStream bos = new FileOutputStream("output.txt");

MultiOutputStream multi = new MultiOutputStream(new PrintStream(bos),oldPrintStream);

System.setOut(new PrintStream(multi));

System.out.println("jjjjjjjjjjj");

}

}

这样console和文件中都会有输出。

参考材料:

1、要解决console和文件同时输出的问题还需要自己实现一个OutputStream,让OutputStream能同时写入多个输出.

首先继承java.io.OutputStream,然后实现public abstract void write(int b) throws IOException; 并且覆写java.io.OutputStream中的其他的方法,具体的实现方式按照自己的需求来做,这里就不做出具体的实现了.

通过实现自己实现OutputStream之后,

PrintStream printStreamOut = new PrintStream(outputStreamOut);

PrintStream printStreamErr = new PrintStream(outputStreamErr);

中分别把outputStreamOut和outputStreamErr对象换成自己实现的OutputStream对象,这样就可以实现在一个OutputStream对象中进行多个输出操作.

按照以上的思路进行的实现,可以完全把控制台的所有的输出写入到日志文件中,包括System.out.println这样的输出.

2.Re:Java控制台的内容如何输出到文件? [Re: GlennLi] Copy to clipboard

Posted by: zcjl

Posted on: 2006-03-13 14:18

对于标题的问题,可以参考下面这段代码:

PrintStream oldPrintStream = System.out;        ByteArrayOutputStream bos = new ByteArrayOutputStream();        System.setOut(new PrintStream(bos));        System.out.println("this is the text to output");        System.setOut(oldPrintStream);        System.out.println(bos.toString());

有几点需要注意:

1.保留原始的System.out这个对象(上面的oldPrintStream),在对console输出内容转移完成后记得恢复。

2.这里的ByteArrayOutputStream bos = new ByteArrayOutputStream();可以替换为任何OutputStream对象,比如你这里要输出到文本文件,就可以使用FileOutputStream

3.要输出为.doc等格式,则需要对应格式的处理工具支持(如:word和excel文档可以使用poi,pdf可以使用itext等),然后使用相应的outputstream对象替换System.out,并把这些outputstream作为数据源创建对应格式的文件

java console输出_将java console的输出写入文件相关推荐

  1. bigint对应java什么类型_「JAVA」从格式化输出到扫描输入,深究Java正则表达式匹配之道

    字符串是不可变的 字符串是不可变的,也就是说当字符串的内容发生改变的时候,会创建一个新的String对象:但是如果内容没有发生改变的时候,String类的方法会返回原字符串对象的引用. 而正则表达式往 ...

  2. java新建配置文件_使用Java输出字符流FileWriter创建配置文件

    前面介绍了字节输入流FileInputStream和字节输出流FileOutputStream.本节介绍字节输入流FileReader和字节输出流FileWriter的使用方法. 编程案例 在java ...

  3. java ajax 输出_正本清源:所谓Ajax输出的三种形式

    # re: 正本清源:所谓Ajax输出的三种形式  回复  更多评论 2005-12-30 23:19 by Vinson Buffolo did a great job to provide an ...

  4. java将一个整数按字节输出_在java中的整数类型有四种,分别是 byte  short int long 其中byte只有一个字节 0或1,在此不详细讲解。其他的三种类型如下:1、...

    在java中的整数类型有四种,分别是 byte  short int long 其中byte只有一个字节 0或1,在此不详细讲解. 其他的三种类型如下: 1. 基本类型:short 二进制位数:16 ...

  5. java控制台编译_【java c#】通过控制台编译和运行程序//不依赖IDE

    今天闲来无事,回顾下通过控制台编译和运行程序//不依赖IDE java篇 1)首先安装好jdk,然后配置下编译器环境,如下: 将默认路径C:\Program Files\Java\jdk1.6.0\b ...

  6. java queue使用_使用Java使用Amazon Simple Queue Service

    java queue使用 Amazon Simple Queue Service或SQS是Amazon Webservice堆栈提供的高度可扩展的托管消息队列. Amazon SQS可用于完全解耦系统 ...

  7. java web构建_使用Java构建一个宁静的Web服务

    java web构建 介绍 (Introduction) Due to its exponential growth, REST(Representational State Transfer) ha ...

  8. java 包命名_【Java】包的命名规则

    命名规范 包:所有单词的字母小写,之后每个单词用-隔开,如 org.nemo.demo 常量:所有单词的字母大写,之后每个单词用_隔开,如 FLAG 类:所有单词的首字母大写,如 TestJava p ...

  9. java array缓存_有java数组

    [JAVA零基础入门系列]Day10 Java中的数组 [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 D ...

最新文章

  1. Android深入浅出系列之Android工具的使用—模拟器(一)
  2. 13个你一定要知道的PyTorch特性
  3. saltstack(八):saltstack配置管理-安装配置启动tomcat样例
  4. HDU6736 F.Forest Program(dfs找环)
  5. 事理图谱概念辨析及其与风险标签分类结合的应用探讨
  6. html5健康有机蔬菜果汁店网站模板
  7. (27)FPGA面试技能提升篇(UVM、VMM)
  8. iOS之内存管理(ARC)
  9. 最受欢迎的网管工具集
  10. Unity粒子特效系列-爆炸冲击波
  11. 3000计算机组装电脑,电脑组装教程,教您组装电脑配置清单
  12. 互联网时代成功创业故事
  13. 手脱FSG压缩壳及问题处理
  14. 教程┊解决使用USB键盘进行游戏后按任意键出现蓝屏的错误
  15. mariadb无法访问
  16. python输入数学表达式并求值_Python 条件表达式求值
  17. -webkit-scrollbar 滚动条样式设置
  18. android http上传文件
  19. B端和C端的产品有何差异
  20. 2021年宏观经济十大趋势展望

热门文章

  1. HTML-form标签学习_015
  2. Hashtable 和 HashMap 的区别
  3. ERmaster 数据库设计 ,显示中文逻辑名
  4. 微信小程序怎么确定是息屏、返回、还是Home键操作?
  5. Android应用性能优化之优化列表头像过度绘制[一]
  6. 快速构建Windows 8风格应用34-构建Toast通知
  7. 混乱的MVC,.NET非要MVC不可么?
  8. 用户名错误则一直登录
  9. 尤金·卡巴斯基:卡巴斯基实验室调查内网遭黑客攻击事件
  10. make_smbcodepage - 为Samba创建代码页文件