首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
FileInputStream流的read方法和FileRe
[问答题]
FileInputStream流的read方法和FileReader流的read方法有何不同?
添加笔记
求解答(2)
邀请回答
收藏(0)
分享
纠错
1个回答
添加回答
1
牛客769256610号
1 读取文件不同,读取字节文件,和字符文件 2 读取方式不同,前者一般用数据字节流datainputstream辅助读取,后者使用bufferedreader字符缓冲流辅助读取 之所以是辅助是因为它们自身的读取效率底 从流的角度来说,fileinputstream和filereader分别属于文件字节流和文件字符流,文件字节流,按字节为单位读写,fileinputstream字节流的read方法以-1做返回值,原因有三,1 java整数默认为int,byte,和short整数是按照int存储和运算的,运算后在进行强制转换,也就是int的底八位和底十六位,2 read希望通过返回值标记结束,读取一字节看成int时,就没有负数[操作系统中负数补码存储] filereader字符流实现了字节字符转换流inputstreamreader[可对字节字符双向解码,字节可转换成字符,字符可转换成字节],且在底层是没有字符这一说的,都是二进制串,也就是说在底层都是用字节读写的,而filereader读取字符时内部也会转换成字节[继承了字节字符转换流] 这两种读取方式也牵涉到安全问题,字节文件和字符文件,前者要用相应流读写,后者能直接打开,而且前者可以在字节基础上附加某些规则,也就是加密,而这种规则的复杂程度也就对应密码复杂度,最后还想说说字符的一些问题,字节字符转换流是为了解决字符编码问题和流的转换而存在的,字符编码的问题一般和字符集有关,java中 char字符用unicode字符集存储,unicode使用两个字节编码字符,而字符集最初的时候只有ascll码集,但随着发展ascll不能表示更多的集合,所以出现了更多的集合,如gb2312 utf-8 还有unicode ,其中unicode表都将ascll128位字符作为基本表拓展,这也使得unicode在国际上使用程度很高,不同的字符集合自然也有差异,例如gb2312只兼容汉字,ascll只适用英文环境,还有一字节、两字节、四字节等不同位表示方法,平时写网页有乱码一般是字符集的问题,最后,欢迎补充(づ ●─● )づ
编辑于 2020-11-02 11:07:01
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
上传者:
小小
难度:
1条回答
0收藏
1452浏览
热门推荐
相关试题
假定一个待哈希存储的线性表为(32...
哈希
评论
(1)
5.下列判断正确的是( )
资料分析
言语理解与表达
资料分析
评论
(1)
《拳皇97》最后BOSS是谁?
游戏常识
评论
(1)
《魔兽世界》中,下列不属于玩家可以...
游戏常识
评论
(1)
你有没有崇拜的偶像,你欣赏他/她身...
通用能力
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题