A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范龙彬 黑马帝   /  2011-11-23 19:56  /  2546 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


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


                try {
                        int []arr =new int[2];
                        System.out.println(arr[2]);
                } catch (Exception e) {
                        String str = new SimpleDateFormat("yyy-MM-dd hh:mm").format(new Date());
                        PrintStream ps =new  PrintStream("d:\\异常信息.log");
                        ps.println(str);

                        e.printStackTrace();  //    e.printStackTrace(ps)   这么写我明白              
                        System.setOut(ps);                             
                }

e.printStackTrace()默认的是System.Out(控制台)   加上PrintStream ps (d:\\异常信息.log)一共两个输出流.
那么下面的System.setOut(ps); 改变的是哪个输出流  的目的 ???
System.setOut(ps)方法为什么不能把System.Out(控制台)这个流的异常信息不能写入d:\\异常信息.log这个目地中.??

1 个回复

倒序浏览
你应该少写了个对象把 PrintStream ps =new  PrintStream(new FileOutputStream("d:\\异常信息.log"));

我没测试不知道对不对

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马