java read(byte【】b)方法的到底是什么时候返回-1什么时候返回字节数

byte[]b=newbyte[1024];intn=0;while((n=fis.read(b))!=-1)//到底是每读一个字节就进入到循环体中,,还是一下子读完再进... byte []b=new byte[1024];
int n=0;
while((n=fis.read(b))!=-1)//到底是每读一个字节就进入到循环体中,,还是一下子读完再进入到循环体中。????那个-1是什么时候读取的???
{
String s=new String(b);
System.out.println(n);
}
System.out.println(n);
展开
 我来答
wong71
2011-12-20 · TA获得超过162个赞
知道答主
回答量:141
采纳率:0%
帮助的人:65.8万
展开全部
那个byte[]b是缓冲区,每次循环读取b大小的字节,如果读取不成功,如数据流已读完,就返回-1
更多追问追答
追问
假如说文件中的字节数小于1024 ,那while的条件((n=fis.read(b))!=-1)第一次就为false,也就不会进入循环体?可是它确实是打印出来文件中的数据?求大哥解答???
追答
小于1024它也读出来,第一次循环的是返回值不是-1的,是第二次循环的时候返回-1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lydawen
2011-12-20 · TA获得超过3181个赞
知道大有可为答主
回答量:2678
采纳率:50%
帮助的人:1496万
展开全部
fis是啥?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式