黑马程序员技术交流社区

标题: PrintStream的问题 [打印本页]

作者: liguangcaiup    时间: 2013-7-1 21:27
标题: PrintStream的问题
本帖最后由 liguangcaiup 于 2013-7-2 07:33 编辑
  1. public class IO {
  2.         public static void main(String[] args) throws IOException {
  3.                 try {
  4.                         Properties properties = System.getProperties();
  5.                         properties.list(new PrintStream("a.txt"));        //记录系统信息
  6.                         int[] A = new int[2];
  7.                         int a = A[3];                                  //产生越界异常
  8.                 } catch (Exception e) {

  9.                         e.printStackTrace(new PrintStream("a.txt"));//记录异常信息
  10.                 }
  11.         }
  12. }
复制代码
e.printStackTrace(new PrintStream("a.txt"));//记录异常信息   会覆盖系统记录的信息
怎么能让异常信息加在系统信息之后呢
如何让PrintStream在已经存在的文件后面加些输出?
作者: liujkh123    时间: 2013-7-1 21:41
流使用起来就是各种流对象包装来包装去的
PrintStream 的构造方法可以接收一个OutputStream对象,而FileOutputStream 的构造方法又有一个可以指定在指定文件中添加数据的,所以代码按下面的改就可以做到不覆盖原来的信息了
  1. package com.itheima.io.print;

  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.io.PrintStream;
  5. import java.util.Properties;

  6. public class PrintStreamTest {
  7.     public static void main(String[] args) throws IOException {
  8.             try {
  9.                     Properties properties = System.getProperties();
  10.                     properties.list(new PrintStream(new FileOutputStream("a.txt", true)));        //记录系统信息  并且在记录时不覆盖原来的
  11.                     int[] A = new int[2];
  12.                     int a = A[3];                                  //产生越界异常
  13.             } catch (Exception e) {

  14.                     e.printStackTrace(new PrintStream(new FileOutputStream("a.txt", true)));//记录异常信息
  15.             }
  16.     }
  17. }
复制代码

作者: 肥猫    时间: 2013-7-1 22:04
楼上代码编译可以通过,运行不行.




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