FileInputStream 类中的read方法 是每调用一次,就依次往后读下面一个字符吗?

FileInputStream 类中的read方法 是每调用一次,就依次往后读下面一个字符吗?

http://img1.sycdn.imooc.com//climg/5d8f421d09c8421611270276.jpg

http://img1.sycdn.imooc.com//climg/5d8f42b609d6436905100426.jpg

http://img1.sycdn.imooc.com//climg/5d8f42d9095531d209050693.jpg


http://img1.sycdn.imooc.com//climg/5d8f427a090a7dc114660697.jpg

还有 为什么txt文件能正常读取 ,docx文件就不能正常读取?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,

1、对于第一个问题:

FileInputStream 类中的read方法 是每调用一次,就依次往后读下面一个字符吗?

你的理解是正确的,对于read()方法,返回的是下到达一个数据字节;如果已文件末尾,则返回 -1。

2、对于第二个问题,因为docx格式的文件本质上是一个ZIP文件,docx 里面的内容其实进行过某些格式整合到一起的文件,同学可以尝试将imooc.docx文件的后缀改为ZIP后是可以用解压工具解压的,可以看到里面有很多内容整合在一起的,所以读出的内容是不正确的。

3、对于第三个问题:

 "说 read()方法 读到最后的返回值是-1“”的意思是不是读到最后一个字符的返回值并不是-1,而是读完最后一个字符再往下读的返回值才是-1.

你的理解是正确的~

4、同学在编写代码时,要注意命名规则,建议包名不要使用中文,建议使用英文全小写,如com.imooc.file;当类名由一个单词组成时,该单词首字母大写;如果类名由多个单词组成,则每个单词的首字母均大写。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 电磁护盾 提问者 #1
    包名暂时用中文跟视频的标题对应。等视频全看完,再写其他程序时,再用英文当包名。 我知道类名第一个单词首字母大写,类名后面拼接的每个单词的首字母也大写。只是临时做个实验,试试代码对文件的操作,于是随手乱按几个字母当类名,就忘了把首字母大写了。
    2019-09-29 23:32:44
提问者 电磁护盾 2019-09-28 19:40:26

还有一个问题  "说 read()方法 读到最后的返回值是-1“”的意思是不是读到最后一个字符的返回值并不是-1,而是读完最后一个字符再往下读的返回值才是-1.

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师