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

作者:用户 来源:互联网 浏览:530 次 时间:2016-05-20 19:14:55

java

java中的字节输入流的无参read方法,每次读到的是一个字节,还是一个基本数据的字节值? - 摘要: java中的字节输入流的无参read方法,每次读到的是一个字节,还是一个基本数据的字节值?FileInputStream的无参read()方法,每次读到的是一个字节,那他返回给的int变量的是一个字节

问题描述

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

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

解决方案

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

解决方案二:

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

解决方案三:

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

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

云服务器9.9元/月,大学必备

热点导航