10

writeUTF 和 writeChars 有什么区别?(ObjectOutputStream 的方法) 另外我在ObjectInputStream 中没有找到对应的readChars。

4

2 回答 2

13

writeUTF以 UTF-8 格式编码写入文本,前面有文本长度,因此readUTF知道要从流中读取多少个字符。

writeChars将文本写入为无长度的 2 字节字符序列。要阅读它,我们应该使用readChar方法并且我们需要知道写入了多少个字符。

于 2013-09-22T15:11:01.310 回答
3

writeChars()使用 Unicode 值

将字符串 s 中的每个字符按顺序写入输出流,每个字符两个字节。如果 s 为 null,则抛出 NullPointerException。如果 s.length 为零,则不写入任何字符。否则,先写入字符 s[0],然后写入 s 1,以此类推;最后写入的字符是 s[s.length-1]。对于每个字符,实际上写入了两个字节,首先是高位字节,这与 writeChar 方法的方式完全相同。

writeUTF()使用稍微修改过的 UTF-8 版本

将两个字节的长度信息写入输出流,然后是字符串 s 中每个字符的修改后的 UTF-8 表示。如果 s 为 null,则抛出 NullPointerException。根据字符的值,字符串 s 中的每个字符都转换为一组一个、两个或三个字节。

于 2013-09-22T15:05:23.573 回答