Java.Decorator设计模式

本文介绍了一种利用PrintWriter将Exception类的printStackTrace方法输出的异常信息存储为字符串的方法,并演示了如何将该字符串进一步写入文件的过程。

在程序中用一个对象(the Decorators)包装另外的一个对象,这是一种被称为Decorator的设计模式

如果要设计自己的IO包装类,这个类需要继承以FilterXXX命名的类,例如,设计一对输入输出包装类:RecordInputStream和RecordOutputStream,来完成从数据库文件中读取记录和往数据库文件中写入记录。

Exception类从Throwable类继承的三个printStackTrace方法的定义如下:
public void printStackTrace()
public void printStackTrace(PrintStream s)
public void printStackTrace(PrintWriter s)
如何把printStackTrace方法打出的详细异常信息存储到一个字符串中?
import java.io.*; public class TestPrintWriter { public static void main(String[] args) { // TODO: Add your code here try{ throw new Exception("test"); }catch(Exception e){ StringWriter sw=new StringWriter(); //字符串与输出流之间的桥梁StringWriter PrintWriter pw=new PrintWriter(sw); e.printStackTrace(pw); System.out.println(sw.toString()); try{ FileWriter fw=new FileWriter("test.txt"); fw.write(sw.toString()+"中文字符"); fw.close(); }catch(Exception e1){ e1.printStackTrace(); } } } }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值