`
womendu
  • 浏览: 1475019 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Inputstream读取文件,使用read()方法,判断尾标记需要注意的问题

 
阅读更多

先看下面一段代码:

运行结果为:Hello,java

在此代码中如果我不使用temp进行接收每次读取的内容,而直接操作每次读取的内容会怎么样呢?看下面的代码:

运行结果为:el,aa

造成这一结果的原因是什么?

观察可以发现,运行结果是跳跃的,每一个内容与上一个内容都间隔了一个字符。再阅读代码发现:in.read()被调用的两次,所以原因也就出来了:原因是有两次调用in.read(),in.read()是读取下一字节,导致b[]中存储的是跳跃的,即每次存入其中的都与上一个内容相差一个字节。问题并不复杂,重要的是自己书写时可能会造成这样的错误,所以一定要使用temp对读取的内容进行接收,同时只操作temp。发现问题和解决问题时,细心耐心很重要。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics