输出流编写器内部缓冲区大小

5
我想创建一个无缓冲的OutputStreamWriter文档(Java 7)说:

生成的字节在写入底层输出流之前会被累积到缓冲区中。可以指定此缓冲区的大小,但默认情况下它足够大以满足大多数需求。

“可以指定此缓冲区的大小”……怎么指定呢?
(编辑:这是文档中的旧错误,在Java 9中已经修复。)

不错的发现。我本以为它会在构造函数中,但显然不是这样... - Jon Skeet
1
我相信“某些”缓冲区是必需的,因为字符编码的工作方式:如果您收到代理对的第一半,您必须将其缓冲,直到您收到其第二半。 - Louis Wasserman
@JonSkeet 这不应该放在构造函数中。如果放在其中,那么就没有必要使用BufferedWriter了。 - Siva Kumar
1
@SivaKumar:是的,因为 BufferedWriter 不进行编码。假设有任何缓冲,指定大小是有意义的。 - Jon Skeet
1
@SivaKumar:有什么可能的方法呢?已经有一个缓冲区了 - 如果调用者指定了一个更小的缓冲区,那肯定会减少开销。正如Louis所指出的,必须有某种描述缓冲区的方式,而正如我所指出的,这与BufferedWriter之间仍然存在非常显着的差异。 - Jon Skeet
显示剩余5条评论
1个回答

5

好的,看起来似乎没有办法调整缓冲区大小。在Java 1.1中曾经可以在构造函数中设置缓冲区大小!

Java 1.2(1998年)中,这个构造函数消失了,但显然他们忘记更新文档。

(我觉得这个文档错误在这么多年里一直没有被注意到很奇怪,而且我也无法关闭缓冲区)。

更新:在Java 8中仍然是相同的。

更新2:已确认为文档错误,终于在Java 9中的文档中移除了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接