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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序爱好者 中级黑马   /  2014-4-26 16:51  /  801 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1.         public static void Exceptions()throws IOException
  2.         {
  3.                 try {
  4.                         int[] num=new int[3];
  5.                         System.out.println(num[5]);
  6.                 } catch (Exception e) {
  7.                         Date d=new Date();
  8.                         SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
  9.                         String s=sdf.format(d);
  10.                         PrintStream ps=new PrintStream("Exceptions.log");
  11.                         ps.println(s);    //这句怎么理解
  12.                         System.setOut(ps);   
  13.                         e.printStackTrace(System.out);
  14.                 }
  15.         }
复制代码

谁给我讲讲这的意思  详细点

4 个回复

倒序浏览
PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式的一个类。
PrintStream ps=new PrintStream("Exceptions.log");    创建具有指定文件名称且不带自动行刷新的新打印流对象。
ps.println(s);就是将得到的s字符串写到Exceptions.log文件中。

评分

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

查看全部评分

回复 使用道具 举报
public PrintSteam(OutputStream out)和public PrintSteam(OutputStream out,boolean autoFlush)在默认情况下显示刷新,如果autoFlush参数为true,则在每输入一个字节数组或换行,或则调用println()时刷新。
PrintStream ps=new PrintStream("Exceptions.log");//autoFlush参数为true无刷新的功能
在添加Date的同时需要调用ps.println(s)执行刷新操作

评分

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

查看全部评分

回复 使用道具 举报
import java.io.*;
import java.util.*;
import java.text.SimpleDateFormat;

public class Test1
{
        public static void main(String[] args) throws Exception
        {
                exceptions();
        }
        public static void exceptions()throws IOException
        {
                try {
                        int[] num=new int[3];
                        System.out.println(num[5]);
                } catch (Exception e) {
                        Date d=new Date();
                        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
                        String s=sdf.format(d);
                        PrintStream ps=new PrintStream("Exceptions.log");
                        ps.println(s);    //这句怎么理解。
                        System.setOut(ps);   
                        e.printStackTrace(System.out);
                }
        }
}

ps.println(s);    //这句怎么理解。这句话的意思就是将字符串s(即日历)打印到文件Exception.log中去。我完善了一下代码,你可执行该代码后,在你存放该程序的当前目录下查看Exception.log这个文件的内容,会有如下内容:
2014年04月26日  19:50:30                (当然,这里的时间将会是你运行该程序时的时间。)
java.lang.ArrayIndexOutOfBoundsException: 5
        at Test1.exceptions(Test1.java:96)
        at Test1.main(Test1.java:90)

评分

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

查看全部评分

回复 使用道具 举报
起来。。。不愿做奴隶的人们。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马