是否有一个与StringWriter等效但在Java内部使用StringBuilder的版本?

是否有一个与StringWriter等效但在Java内部使用StringBuilder的版本?,java,performance,io,Java,Performance,Io,我注意到StringWriter在内部使用StringBuffer。但是,如果您不需要这种同步开销,是否有一种与StringWriter等效的内置StringBuilder 不,在当前的标准java API中没有使用StringBuilder的等价物(至少7个,我在8个月没有调查过) 如果你的问题背后的理由是表演,我认为你不必担心。但是,如果这方面很关键,您可以自己实现一个StringWriter类,但使用StringBuilder来检查差异是否显著。如果是,保留您自己的,否则就没有问题。如果您

我注意到StringWriter在内部使用StringBuffer。但是,如果您不需要这种同步开销,是否有一种与StringWriter等效的内置StringBuilder

不,在当前的标准java API中没有使用
StringBuilder
的等价物(至少7个,我在8个月没有调查过)


如果你的问题背后的理由是表演,我认为你不必担心。但是,如果这方面很关键,您可以自己实现一个
StringWriter
类,但使用
StringBuilder
来检查差异是否显著。如果是,保留您自己的,否则就没有问题。

如果您碰巧使用了Apache Commons IO,则可以重复使用,如下所述:

输出到StringBuilder的编写器实现

注意:作为java.io.StringWriter的替代方案,此实现提供了一个非同步(即用于单个线程)实现,以获得更好的性能。为了安全使用多线程,应使用java.io.StringWriter


它的实现也如预期的那样简单,因此您可以从中选择模式并自己实现,而无需添加新的依赖项。

您到底想要实现什么?。我认为无论使用stringbuffer还是stringbuilder,性能差异都非常小。(这同样取决于您的应用程序)无耻的插件:更具体地说:IOUtils.newCharBuffer()@user3505725如果您真的关心性能,您不会使用这两种方法可能是一个重新循环的缓冲区,如果您只需要ASCII等,可能是一个基于字节的缓冲区。这将由应用程序中的自定义记录器使用,并且将编写许多内容,因此我猜性能增益将是可见的+1您可以复制现有类,并在大约5分钟内更改它。我将尝试此方法。谢谢你的邀请tip@sa_vedem请让我们知道结果,这很有趣!