A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Fightin黑马 中级黑马   /  2014-9-20 22:47  /  1115 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Fightin黑马 于 2014-9-23 13:20 编辑

FileInputStream fis= new FileInputStream("a.txt");
int len;

while((len=fis.read())!=-1){
........
}
读取是按照字节读取的,为什么定义int来接收呢,另外-1结束标志在读取过程中是怎样表示的,
如果是二进制的八个1的话,在读取文件的时候整好碰到连续的八个1又怎么识别它不是结束标记呢

2 个回复

倒序浏览
    read()一次只读一个字节, 返回 0 到 255 范围内的 int 字节值, 比如:8个为1就刚好等于255。    如果已经到达流末尾而没有可用的字节,则返回值 -1。
回复 使用道具 举报
一个字节8位,很容易碰到-1,导致读取数据不准确,这时必须定义返回值类型为Int,Int占32位,但是只获取这8位有效值,让他&255,其余位补0就可以获取最低有效8位了,老毕有讲的,我表述的可能不准确,你再看下老毕讲的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马