求解,两个红框里的代码是不是一样的呢,为啥打印不一样

求解,两个红框里的代码是不是一样的呢,为啥打印结果不一样呢?

img

// 这段代码是把读取的数据存到变量by里,打印时也是打印通过这个变量转换的字符串
while((by=bis.read())!=-1)
  System.out.printin((char)by)

// 这段代码,bis.read()调用了2次,打印的结果是第二次读取的数据
while(bis.read()!=-1System.out.println((char)(bis.read());

当然不一样
上面的代码里,先读取,然后存入变量by,再打印by
下面的代码里,判断里读取一次,打印时又读取一次
-=-==
这就好比,咱俩去吃饭,AA,
方法1 :我从你手里拿了100,然后把手里的100交给服务员
方法2 :我从你手里拿了100,我又从你手里拿了100交给服务员
你觉得一样吗