java中的字节输入流的无参read方法,每次读到的是一个字节,还是一个基本数据的字节值?

FileInputStream 的无参read()方法,每次读到的是一个字节,那他返回给的int变量的是一个字节的int表现形式,还是一个基本数据(如char字符数据)的字节值的int表现形式?如果是返回的一个字节,那这个字节转化成的int值,最多只能取到2的8次方即255个,单个字节是无法表示一个字符的,如果原文件中有汉子,系统又是怎么样把一个字节的数据转换成汉子呢?本人新手,这块不是很理解,求大神解答,谢谢!

字节的数据转换成汉子,先以字节读,再以字符转换
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8");

返回值就是你读取出来的一个字节,也就是说FileInputStream是一个个字节读取的,一般来说,需要在外层进行包装,比如外层再封装一个字符流,这样就可以以字符为单位读取了

是读的字节,不是字节值,汉字是按字节读,一个汉字2个字节,一般读file文件的时候读行是最快的