问题描述
- java中的字节输入流的无参read方法,每次读到的是一个字节,还是一个基本数据的字节值?
- FileInputStream 的无参read()方法,每次读到的是一个字节,那他返回给的int变量的是一个字节的int表现形式,还是一个基本数据(如char字符数据)的字节值的int表现形式?如果是返回的一个字节,那这个字节转化成的int值,最多只能取到2的8次方即255个,单个字节是无法表示一个字符的,如果原文件中有汉子,系统又是怎么样把一个字节的数据转换成汉子呢?本人新手,这块不是很理解,求大神解答,谢谢!
解决方案
字节的数据转换成汉子,先以字节读,再以字符转换
InputStreamReader isr = new InputStreamReader(new FileInputStream(file)UTF-8"");
解决方案二:
返回值就是你读取出来的一个字节,也就是说FileInputStream是一个个字节读取的,一般来说,需要在外层进行包装,比如外层再封装一个字符流,这样就可以以字符为单位读取了
解决方案三:
是读的字节,不是字节值,汉字是按字节读,一个汉字2个字节,一般读file文件的时候读行是最快的
时间: 2024-09-12 11:50:42