黑马程序员技术交流社区

标题: 谁能帮忙把打印到文件中数据分行啊,时间和异常提示分开 [打印本页]

作者: 潜伏    时间: 2013-11-28 20:43
标题: 谁能帮忙把打印到文件中数据分行啊,时间和异常提示分开
/*
要求:将系统抛出的异常写入文本中。并同时附带打印时间。
*/
import java.io.*;
import java.util.*;
import java.text.*;
class ThreadDemo
{
        public static void main(String[] args)throws IOException
        {
                try
                {
                        int[] arr=new int[2];
                        System.out.println(arr[2]);
                }
                catch (Exception e)
                {
                        Date d=new Date();
                        SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
                        String g=df.format(d);
                        PrintStream p=new PrintStream("Exception.txt");
                        p.write(g.toString().getBytes());
                        e.printStackTrace(p);
                }
               
        }
}

作者: ~IN_HAND~    时间: 2013-11-28 21:38
import java.io.*;
import java.util.*;
import java.text.*;
class ThreadDemo
{
        public static void main(String[] args)throws IOException
        {
                try
                {
                        int[] arr=new int[2];
                        System.out.println(arr[2]);
                }
                catch (Exception e)
                {
                        Date d=new Date();
                        SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
                        String g=df.format(d);
                        PrintStream p=new PrintStream("Exception.txt");
                        p.println(g);
                        e.printStackTrace(p);
                }
               
        }
}
首先你的这句p.write(g.toString().getBytes());中的toString()是多余的,g本身就是String类型的。
要实现换行直接使用PrintStream中的println方法打印就行了。
作者: 邓伟    时间: 2013-11-28 21:45
  1. import java.io.*;
  2. import java.util.*;
  3. import java.text.*;
  4. class ThreadDemo
  5. {
  6.         public static void main(String[] args)throws IOException
  7.         {
  8.                 try
  9.                 {
  10.                         int[] arr=new int[2];
  11.                         System.out.println(arr[2]);
  12.                 }
  13.                 catch (Exception e)
  14.                 {
  15.                         Date d = new Date();
  16.                         SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
  17.                         String g = df.format(d);
  18.                         PrintStream p = new PrintStream("Exception.txt");
  19.                                                 BufferedWriter br = new BufferedWriter(new OutputStreamWriter(p));//加入一个缓冲区
  20.                         br.write(g.toString());
  21.                                                 br.newLine();
  22.                                                 br.flush();
  23.                         e.printStackTrace(p);
  24.                 }
  25.                
  26.         }
  27. }
复制代码


新手答题.不对的别介意...
作者: 冯晓骏    时间: 2013-11-28 21:45
加一句
p.write("\r\n-------------------------\r\n".getBytes());
这个不就行了么,在倒数第一行和第二行之间
作者: 潜伏    时间: 2013-11-28 22:04
~IN_HAND~ 发表于 2013-11-28 21:38
import java.io.*;
import java.util.*;
import java.text.*;

不错。。。
作者: 潜伏    时间: 2013-11-28 22:04
冯晓骏 发表于 2013-11-28 21:45
加一句
p.write("\r\n-------------------------\r\n".getBytes());
这个不就行了么,在倒数第一行和第二行 ...

这样不太好吧???不能跨平台了
作者: 冯晓骏    时间: 2013-11-28 22:23
潜伏 发表于 2013-11-28 22:04
这样不太好吧???不能跨平台了

恩,println也行




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2