【发布时间】:2012-09-24 21:13:53
【问题描述】:
在 Servlet 中,我在 StringBuilder 中构建大量 HTML 内容,最后需要将其写入响应的 PrintWriter。为了使用 PrintWriter,它必须首先调用 StringBuilder 的 toString() 方法以获取 String 形式的内容。但这不必要地复制了内容。有什么方法可以直接从 StringBuilder 写入,因为它已经保存了内容?
PrintWriter 可以接受 CharSequence,但文档说明它调用 CharSequence 的 toString(),所以它并没有真正的帮助。
我能看到的唯一明确的方法是使用 StringBuilder 的 charAt(i) 方法一次获取和写入一个字符,但这会是一种改进吗?
【问题讨论】:
-
改进是相对的。如果您的目标是减少内存消耗,那么是的,这将是一个改进。你应该测试它是否更慢。如果 - 由于输出流的缓冲 - 毕竟性能损失并没有那么大,我不会感到惊讶。
标签: java servlets stringbuilder printwriter