关于字节和字符的问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 05:26:53
书上说 JAVA 里面,一个中文字和一个英文字母都是用一个字符来表示,那就是占2个字节了。

可是:
FileOutputStream fos = new FileOutputStream(path);
DataOutputStream dos = new DataOutputStream(fos);
dos.writeUTF("我");
FileInputStream fis = new FileInputStream(path);
DataInputStream dis = new DataInputStream(fis);
System.out.println(dis.available());

显示的却是 5 ;

是不是说 “我” 这个字占4个字节,回车符占一个字节,那一个中文字不就是两个字符了么?

public int available() throws IOException
返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。下一个调用者可能是同一个线程,也可能是另一个线程。一次读取或跳过此数量个字节不会发生阻塞,但读取或跳过的字节可能小于该数。
此方法返回 in.available() 的结果。

一个汉字不是占2个字节吗?