2012-12-11 73 views
0

我正在详细查看节点Buffer文档,我无法解读buffer.write()的解释。部分缓冲区写入

具体来说,我不明白当使用大于缓冲区容量的字符串执行写入尝试时的行为。下面的一段似乎与本身矛盾:

如果缓冲区没有足够的空间来容纳整个字符串,它会写入部分字符串。长度默认为buffer.length - offset。该方法不会写入部分字符。

第一句声称它会写出它所能写的,而最后一句说它是全有或全无操作。

我错过了什么吗?

回答

1

在某些编码(如UTF-8)中,一个单个字符可以表示为多个字节

当文档中提到“该方法不会写入部分字符”时,我认为这意味着如果一个字符需要3个字节但缓冲区中只剩下2个字节,则该字符根本不会被写入(相反仅写入前2个字节)

http://en.wikipedia.org/wiki/UTF-8