java:StringBufferOutputWriter还是StringBufferOutputStream?

标签 java stream

我需要捕获一个捕获的异常并获取一个字符串,该字符串将使用 printStackTrace() 打印。

看起来最简单的事情是调用 printStackTrace(X),其中 X 是 PrintStreamPrintWriter 的子类,并将其收集到一个 StringBuilder 并且可以返回一个 String

这样的事情存在吗?如果没有,有什么建议如何做到这一点吗?

编辑:skaffman 发布了一个使用 getStackTrace() 的解决方案。 (您或版主可以取消删除吗?)这实际上是唯一“正确”工作的解决方案。在 StringWriter 之上使用 PrintWriter 的问题是,尽管它工作起来很容易,但对于深堆栈跟踪,它不会打印所有元素。

最佳答案

你想要的是StringWriter

您可以将其传递到 PrintWriter 的构造函数中,然后调用 StringWriter 的 getBuffer() 或 toString() 来获取最终的字符串。

关于java:StringBufferOutputWriter还是StringBufferOutputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1752263/

相关文章:

java - BufferedWriter 类型中的方法 write(int) 不适用于参数 (Long)

java - 如何在Java 8中替换以下代码?

json - 转换文件完整内容nodejs

join - KSQL 加入两个以上的流

ffmpeg - 在ffmpeg中将RTSP流连续保存为特定长度(10分钟)的多个mp4文件

java - 在列表中查找某些属性具有相等值的对象

java - 将字节数组转换为 png

java - 注释或不注释

Golang grpc ServerStream 抛出错误 : transport: the stream is done or WriteHeader was already called

linux - 有什么方法可以将/dev/urandom 生成的字符流拆分成不同的子流吗?