IO流有关问题

IO流问题
InputStream是按字节读取的,int类型站四个字节,char类型占两个字节(无论汉字还是英文),
如果是一个字节一个字节的读,那么对于任意一个int型整数,是读取了四个字节吗?
既然汉子和英文同为两个字节,为什么英文没问题而汉子却乱码?

求高手指点,网上找了一下,好像是ASCII和Unicode编码的问题,但还是没看懂

------解决方案--------------------
JAVA中,一个char是2个字节(byte),而一个中文汉字是一个字符,也是2个字节。而英文字母都是一个字节的,因此它也能保存到一个byte里,一个中文汉字却不能。
------解决方案--------------------
乱码主要是编码问题,跟字节多少没关系的。