【发布时间】:2010-06-30 19:33:39
【问题描述】:
为什么某些将bytes/chars 写入流的方法采用int 而不是byte/char??
如果是int 而不是char,有人告诉我:
因为 char 在 java 中只有 2 个字节的长度,这对于已经在使用的大多数字符符号来说是可以的,但是对于某些字符符号(中文或其他),字符被表示为超过 2 个字节,因此我们使用 int而是。
这个解释离事实有多近?
编辑:
我用stream这个词来表示二进制和字符流(不仅仅是二进制流)
谢谢。
【问题讨论】:
-
您应该具体说明这一点。特别是,流通常没有与
char相关的方法,因为它们用于二进制 数据; text 数据需要适当的编码,而流本身不应该知道。 -
普通流只接受二进制数据,即字节,而不是字符或整数。如果您想发送文本,我建议您使用具有所选编码的 Writer,对于 char、short、int 等,您可以使用像 DataOutputStream 这样的 adpater。
-
谢谢,但我不是在问如何将字符串写入文件!
-
“使用流词来表示二进制和字符流(不仅仅是二进制流)”那么您使用的词是错误。您应该学会使用正确的语义,其他任何东西都只是浪费混乱。流仅用于字节,其他接口(写入器/读取器)处理字符和其他更高级别的抽象。
标签: java character-encoding streaming iostream