java 如何即把输出重定向到文件中 又显示是console中

java 如何即把输出重定向到文件中 又显示是console中

System.setOut()之后在终端上就完全看不见了,我需要即能看见 又可以存在文件里的方法~

第1个回答  推荐于2016-08-09
你在调用setOut(out1)之前将输出流保存起来:
PintStream out0=System.out;
System.setOut(out1);
System.out.print("something!");
out1.print("something!");追问

我想要的是两个方法同步起作用 一边存到文件里 一边显示在屏幕上……

追答

写个方法啊,
public static void doPrinting(FileOutputStream fos,String data)
{
out0=System.out;
System.setOut(fos);
out0.print(data);
System.out.print(data);

}
调用的时候:
doPrinting(fileOutStream,mydata);

追问

不光是我自己打的输出 还有error输出呢

追答

给你个思路你自己写吧。用ByteArrayOutputStream(或者管道流):
来够建一个PrintStream ps,然后使用System.setOut(ps)和System.setErr(ps)将输出都重定向到这个ps流,由于ps流最终的存放节点是字节数组(或者管道流的PipedInputStream),所以可以从字节数组(或者管道流中)读出由System.out和System.err写入其中的数据。之后你自己想写到哪都行了。

写不了这么多代码,去我空间看

本回答被提问者采纳
第2个回答  2013-12-02
自己写一个输出的类,同时调用两个方法
第3个回答  2013-12-02
那就用log4j啊,网上搜索,配置一下就行了。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网