使用 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;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异