【发布时间】:2013-09-27 12:28:58
【问题描述】:
writeUTF 和 writeChars 有什么区别? (ObjectOutputStream 的方法) 此外,我还没有在 ObjectInputStream 中找到相应的 readChars。
【问题讨论】:
标签: java io objectoutputstream
writeUTF 和 writeChars 有什么区别? (ObjectOutputStream 的方法) 此外,我还没有在 ObjectInputStream 中找到相应的 readChars。
【问题讨论】:
标签: java io objectoutputstream
writeUTF 以 UTF-8 格式编码写入文本,并以文本长度开头,因此 readUTF 知道要从流中读取多少字符。
writeChars 将文本写入为无长度的 2 字节字符序列。要阅读它,我们应该使用readChar 方法,我们需要知道写入了多少个字符。
【讨论】:
writeChars() 使用 Unicode 值
将字符串 s 中的每个字符写入输出流,在 顺序,每个字符两个字节。如果 s 为 null,则 NullPointerException 被抛出。如果 s.length 为零,则不写入任何字符。 否则先写字符s[0],再写s1,以此类推; 最后写入的字符是 s[s.length-1]。对于每个字符,两个 字节实际上是写入的,高位字节在前,恰好在 writeChar 方法的方式。
writeUTF() 使用稍加修改的 UTF-8 版本
将两个字节的长度信息写入输出流,然后 通过字符串中每个字符的修改后的 UTF-8 表示 s。如果 s 为 null,则抛出 NullPointerException。中的每个字符 字符串 s 被转换为一组一个、两个或三个字节, 取决于字符的值。
【讨论】: