使用 StringWriter 和 printWriter 打印异常原因

StringWriter和PrintWriter都是Java中用于输出文本的类,它们的主要区别在于输出的目标不同。

StringWriter是一个字符流,它将输出的内容保存在一个字符串缓冲区中,可以通过toString()方法获取缓冲区中的字符串。因此,StringWriter通常用于将输出内容保存到字符串中,而不是直接输出到控制台或其他设备上。

PrintWriter则是一个打印流,它可以将输出的内容直接发送到指定的目标(如控制台、文件等)。PrintWriter提供了一些方便的方法来格式化输出内容,例如println()、printf()等。

import java.io.*;

public class PrintWhyUtils {

	// 创建一个StringWriter对象
	private static StringWriter stringWriter = new StringWriter();

     // 创建一个PrintWriter对象,并将输出目标设置为StringWriter
	private static PrintWriter printWriter = new PrintWriter(stringWriter);
		
	public static String weiterException(Exception e){
		String retStr="";
		try{
			e.printStackTrace(printWriter);
			printWriter.flush();
			stringWriter.flush();
			retStr=stringWriter.getBuffer().toString();
			if(stringWriter!=null){
				stringWriter.close();
			}
			if(printWriter!=null){
				printWriter.close();
			}
		}catch(IOException ex){
			ex.printStackTrace();
		}finally {
			try{
				// 关闭PrintWriter和StringWriter
				printWriter.close();
				stringWriter.close();
			}catch(IOException ex){
				ex.printStackTrace();
			}
		}
		return retStr;
    }
}
posted @   Ai喝咖啡Demo  阅读(161)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示