关于javaIO的问题想请教大家

请问关于java IO的问题 我有一些疑问想不通

int bytes=0;
while((bytes=in.read(buf,0,buf.length))!=-1){
for(int i=0;i<bytes;i++)
System.out.print(Integer.toHexString(buf[i]&0xff+" "))}

请问关于这段简述代码。当执行bytes=in.read(buf,0,buf.length这一步的时候,他是不是先把in中的全部读到内存中。这样的话执行完之后如果in中的字节读完了,bytes就等于-1了。 直接不满足 while循环了。 如何会执行 for中?

 还是说bytes=in.read(buf,0,buf.length是先读一个字节到内存 执行一次for。执行read()方法并不是一次性读完?

hy_wang
浏览 1919回答 3
3回答

大大叶5529

是这样的,当程序运行时,就会把所有的变量都装到内存之中,通过in这个对象去读取buf在内存中的地址所指向的数据,从0读到buf的length处,当bytes每次读取一段数据时就会执行打印语句。

大咪

自己打个断点,单步调试看一下,瞬间就懂了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java