java 如何即把输出重定向到文件中 又显示是console中
System.setOut()之后在终端上就完全看不见了,我需要即能看见 又可以存在文件里的方法~
第1个回答 推荐于2016-08-09
你在调用setOut(out1)之前将输出流保存起来:
PintStream out0=System.out;
System.setOut(out1);
System.out.print("something!");
out1.print("something!");追问
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啊,网上搜索,配置一下就行了。。